我阅读了有关选择正确的身份验证机制的文章,我理解JWT只定义了一个令牌,而OAuth是一个可以使用JWT的完整框架。还有其他框架(Firebase?)和令牌标准。
现在,对于我的特定用例,我有一个单页面的微服务应用程序与Angular2,它将在浏览器中运行一整天而不需要任何刷新,在一个相当古老的B2B环境中(2GB内存,IE11)。因此不需要社交登录,并且轻量级解决方案更可取。你能提出什么建议吗?
答案 0 :(得分:3)
这个问题可以提供帮助
您使用的是基于表单的网络还是SPA?
表单:使用服务器会话
SPA:使用身份验证令牌(JWT或不透明)
使用身份验证令牌,您是否希望避免在服务器端存储会话数据?
是:使用JWT
无所谓:使用不透明令牌
客户需要验证令牌或提取令牌声明吗?
是:使用JWT与RSA签名
否:将JWT与HMAC或不透明代币一起使用
您是否有第三方API?
是:成功用户登录后使用OAuth2或OpenIDConnect发出身份验证令牌
否:没有额外的
您想管理用户密码吗?
是:制作您自己的注册和登录表单
否:整合社交登录(他们使用oauth / OIDC)