我正在尝试使用devise_token_auth(https://github.com/lynndylanhurley/devise_token_auth#conceptual)在rails中实现基于令牌的授权。
当我针对uid
方法发布password
和sign_in
时,会在标头中返回access-token
,client
(以及uid
本身)。我知道基于令牌的授权是这样的:
uid
(id)和password
发布到api服务器。uid
和password
uid
和password
匹配,则发出令牌并将其返回。uid
和令牌来证明此客户端实际上已经过身份验证。我可以理解access-token
对应于上述说明中描述的令牌。这导致了我client
标头值是什么的问题,因为根据官方Wiki(https://github.com/lynndylanhurley/devise_token_auth#usage-tldr),devise_auth_token库似乎不仅使用requires access-token
而且{ {1}}值。
client
标头值的目的是什么?为什么识别用户还需要它?无法包含在(或连接到)client
值中吗?答案 0 :(得分:0)
为访问API的每个不同设备生成user.tokens
标头。其目的是为特定用户(Web客户端,移动客户端等)维护多个活动会话。
您可以通过在2个单独的Web客户端上使用同一用户登录并检查select a.id, sum(a.sold+coalesce(b.sold,0)) from products a left join(
select parent, sum(sold) sold
from products group by parent) b on a.id=b.parent
where a.parent=0
group by a.id
来测试这一点,每个客户端应该有一组令牌。