Authentication 单页web应用程序使用单会话令牌与Oauth的缺点
我正在构建一个单页web应用程序,只想通过RESTAPI与后端交互。我已经阅读了和其他人关于API最佳实践的建议 我需要以下身份验证功能:Authentication 单页web应用程序使用单会话令牌与Oauth的缺点,authentication,session,oauth-2.0,jwt,Authentication,Session,Oauth 2.0,Jwt,我正在构建一个单页web应用程序,只想通过RESTAPI与后端交互。我已经阅读了和其他人关于API最佳实践的建议 我需要以下身份验证功能: 允许每个用户同时进行多个(但不链接)会话(即可以同时从多个设备登录和注销) 当用户从一个设备注销时,该会话将不再处于活动状态,并且无法重新使用,但用户在其他设备上的其他会话不会受到影响 可以在页面上打开多个浏览器选项卡,并且会话在它们之间共享(无需在每个选项卡上登录) 支持Google和facebook身份验证按钮(允许用户注册并使用这些服务进行身份验证)
- 允许每个用户同时进行多个(但不链接)会话(即可以同时从多个设备登录和注销)
- 当用户从一个设备注销时,该会话将不再处于活动状态,并且无法重新使用,但用户在其他设备上的其他会话不会受到影响
- 可以在页面上打开多个浏览器选项卡,并且会话在它们之间共享(无需在每个选项卡上登录)
- 支持Google和facebook身份验证按钮(允许用户注册并使用这些服务进行身份验证)
JWT或OAuth如何在这个用例中提供优势?(或者他们会吗?默认行为如下所示,我认为这与您的要求非常接近:
- 登录选项卡1并与API交互
- 打开选项卡2上的应用程序,您将自动登录
- 表1和表2具有独立的访问令牌
- 在选项卡1和选项卡2上注销仍具有有效的访问令牌
例如,我的应用程序使用与API日志相关的会话id-我不使用会话id进行任何安全操作。为什么不直接使用会话cookie(不使用自定义令牌)?请看下面的图片。