相同接口token相同吗

相同接口token相同吗,第1张

相同。相同接口token相同,Token存储在服务器的数据库里面,通常通过登录或者一个接口去获取,登录之后所有的接口都必须要传Token才可以请求成功,Token失效就是最好的阐释。

生成规则一般是自定义的。其实怎么做都是可以的。为了安全可以考虑加密。

举个简单的例子。你可以用appid,appsecred分别用MD5加密,生成2个字符串,然后分别取2个字符串的后6位字符串,链接在一起组成一个12位的字符串。这个字符串就可以作为Token存储到数据库。

当用户请求的时候,会传入appid,appsecred2个参数,以同样的方式加密组合,然后同数据库中的字符串对比,一样就通过。

加密的方法有很多,比如转大写,转小写,追加特殊字符,然后加密。除非别人知道你的加密规则,不然破解不了,因为,你的token不是完整密文,他破解不了。

access token 存在哪里主要看你的业务需求。大多数oauth授权服务器都支持缓存token。也就是说即使你不保存它,重复请求授权的时候,oauth授权服务器会将缓存中的token返回给你。

如果这种方法行不通的时候,可以考虑放到数据库中,

token和用户id一一对应的,所以可以在user表中增加token的字段进行保存。

当然也可以新建一个 userid -token的对应表。

access_token 的使用规则

在微信开发中,最常用到的就是 access_token,access_token 的使用规则是:

每次请求的 access_token 可以在接下来的 2 个小时内都有效,直到你又获取了新的 access_token。

每次跟微信服务器交互都需要用到,但它的请求限制是每天 2000 次,这就要求我们不能每次与微信服务器交互都要重新获取。

二、解决思路

解决思路就是将 access_token 存储起来,并标记它的失效时间。

至于如何存储它,就看你自己的喜好了,你可以将它存储到临时文件中,可以它将存储到数据库中,也可以将它存储到运行内存中。

我之前是将它存到数据库中的,但完全没有必要,其实将它存到运存中就可以。原因是:你后台是一直运行的,那么这个 access_token 的变量就会一直存在,直到下次你重启你的后台。

所以思路是这样的:

新建一个对象变量,记录 access_token 的内容和超时时间

// 临时 access token

let access_token = {

expires: new Date()getTime(),

access_token: ''

}

1

2

3

4

5

1

2

3

4

5

新建一个方法,用于获取 access_token

1 先判断超时时间是否已到。

2 如果已经到了超时时间,就重新获取 access_token 并更新 expires 过期时间。

3 如果未到,说明已经存在 access_token 直接取值用就可以了。

三、例子 nodejs

我有一个后台是 nodejs 写的,它的获取 access_token 的过程是这样的

// 临时 access token

let access_token = {

expires: new Date()getTime(),

access_token: ''

}

// 获取 ACCESS TOKEN

function getAccessToken(){

return new Promise((resolve, reject) => {

if (access_tokenexpires < new Date()getTime()){ // 已超时

axios({

method: 'get',

url: '>

以上就是关于相同接口token相同吗全部的内容,包括:相同接口token相同吗、后台用什么算法去根据appid 和 appsecret生成唯一的accessToken、如何使用access token 防止二次登录等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9816162.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存