我想允许/阻止用户根据他们的角色(管理员,用户,可能是别的东西)和id(用户只能修改他们拥有的资源)访问某些操作。
我不想在每个API调用中加载用户配置文件,我希望以某种方式在请求标头中传递此信息。
我正在考虑两种方法:
用户的访问令牌包含所需的用户信息和时间段(加密)。令牌在每个请求中的Authorization标头中传递。服务器解密令牌并从中获取所有信息。
用户的访问令牌具有相同的信息哈希(使用HMAC)。授权标头包含令牌和所需的用户信息(ID,角色,可能是用户名)。服务器使用相同的密钥将用户信息与当前时段一起散列,并与传递的令牌进行比较。如果它们相等,则授予访问权限。
哪种方法更安全(我觉得第二种)更常见(可能是第一种)?
如果您认为方法2更好,是否可以更好地将用户信息传递到单独的标题中?