写一个接口api, 我觉得只要为每一个请求数据的用户生成一个唯一的 name 和key(密钥),然后用一个表user_api 字段有 id name key 把它存入到表user_api中,每次用户请求数据时,只要提交参数name和key,然后服务器端把参数在user_api表中验证一下就行了,有数据就允许用户请求数据,没有就拒绝请求。
问题:
1.我在公司【项目1】里,看到之前写的接口除了验证name和key合法外,为什么还要生成一个token值呢,然后把这个token值缓存起来设置有效期时间。这个是不是有点多余了啊。
2.代码里面有一个获取token值的方法 getToken();但是我发现公司【项目2】里去调用【项目1】里的数据时,每次调用之前都要先去请求getToken()这个获取token值的接口,获取到token值后,在一并把name、key、token和其它一些参数提交到请求数据的相应的接口。
此时,数据接口会验证name key token。token的验证是和缓存的token对比的。
疑惑:
如上所述,如果是这样的话,每次请求数据时,都要事先调用获取token值的方法 getToken()【该方法通过生成随机字符串和name、key处理生成】,说明每次请求数据接口时获取到的token值都是不一样的,那之前缓存起来的token还有什么用呢。
比如,我要请求一个用户名数据的接口 getUserName();
第一次请求 用户名数据的接口 getUserName()时,我生成了一个token值,然后我把浏览器关闭了。再次请求用户名数据的接口 getUserName(),又生成了一个新的token值。那之前设置的什么缓存token并设置有效期还有什么用呢?就算把他设置成2个小时过期,每次请求接口时,token都不一样。缓存还有什么用处呢?
谁给解释解释,一直想不通这个点。