我需要为每个用户创建一个永久的标识URL,通过它(通过访问它),他们将登录。
例如:用户1:https://www.example.com/?userToken=gj56u45g64g56uy54g6uyg546用户2:https://www.example.com/?userToken=8o9k7ok9o89k7o9ko8k9o78k9
该功能类似于如何识别API,或点击电子邮件确认链接,但它必须是永久的或至少具有非常长的持续时间,因为它将存储在NFC芯片上。
我如何在Auth0(或Oauth 2,因为我认为他们使用的是Oauth 2)中实现这一点?
从我所做的一些阅读中,我似乎没有找到为用户获得永久令牌的方法,而我可以获得的那些令牌的最大生命周期为24小时,这对于预期用途来说太短了。
我已经用一种自定义的方式相当快地完成了这一步,但是在Auth0中我不确定它是如何完成的。
我读过关于刷新令牌的文章,但在我看来,这些令牌每次都需要写入NFC芯片,这是我做不到的。
1条答案
按热度按时间xxls0lw81#
当您进行身份验证时,您将获得一个ID和访问令牌。
你通常使用ID-令牌来创建一个长期的会话cookie,它可以根据你的意愿持续很长时间。ID-令牌被设计成一个相当短的令牌,在一些系统中默认为5分钟。
如果是针对嵌入式系统,则还有device-flow,它更适合UI有限的设备https://auth0.com/device-flow
我怀疑从授权服务编写JWT令牌是否是正确的方法,因为您必须记住,这些服务通常会更改/轮换其签名密钥,因此6个月前发布的令牌今天可能不会被接受。例如,在妥协中,他们被迫更改所有签名密钥,然后您的所有设备都将变得无用。
更好的方法是将您自己的“密钥”写入每个设备。