说明:文档内容不包含相关的技术解决方案,主要是说明从产品角度如何理解access token,在产品设计中的理解。理解比较浅
概念
在计算机系统中,访问令牌包含登录会话的安全凭证,并标识用户,用户的组,用户的权限以及某些情况下的特定应用程序。(来源于维基百科)
通俗的讲,在系统中access token 一般作为设备访问用户信息的安全凭证,用于确认用户身份。这两主要强调2方面:
- access token 是一个安全概念,其目的在于保证在获取用户数据时的安全性
- access token 是一个访问权限,有了可以访问相应的用户数据
设计原则
1. access token 是否应当安全什么样的原则设计失效机制 ?
当系统认判定当前访问用户为高风险时,access token 应该失效掉。这里的高风险指代,比如:同一access token的访问设备发生变更。
2. token失效是否意味着用户必须重新登录来获取 ?
我的判断是2者不是等同关系,因为高风险并不意味着用户一定存在问题。同时,因为风险等级是一个很难界定的事情,有一些风险可能只需要refresh token即可,不需要通过重新登录来更新。
3. token 失效跟是否跟时间有必然关系
没有,这是我之前的一个误解。token有效期3个月或者5个月都是一个很粗糙的处理方案。
4. access token 机制和资源是什么关系
资源是百宝箱,token是钥匙。在系统设计时,一般作为2个独立模块处理,所以token的相关机制依赖资源使用的具体业务提供的数据。但是不绝对,可以token提供机制,由业务进行认定。选择权在谁手里的问题