我正在建造以下建筑物:
用户凭据(电子邮件/密码)可以通过单页应用程序创建,并存储在后端。不需要与外部提供者(如Facebook登录, )进行交互,但这在将来可能是必要的。
一旦用户使用其凭据进行身份验证,单页应用程序应该通过其RESTful API与后端交互。
我很难理解如何建立基于凭证的用户身份验证和授权,这种方式既安全又与单页应用程序的约束兼容。
我找到了关于OAuth 2.0和JSON令牌的信息。我无法想象我应该如何使用这些技术来实现我的最终目标,不管这些技术是应该一起工作还是独立工作,而且我也很难意识到每一种技术所带来的缺陷。
您能否提供一个步骤和组件,以便为带有自定义后端的单页应用程序建立成功的身份验证/授权机制,如果可能的话,还包括以下主题:
发布于 2017-07-19 09:44:02
您可以使用没有Oauth2的JWT和没有JWT的Oauth2,也可以一起使用它们。
请记住,OAuth2管理授权,而不是身份验证。OAuth2不介意如何对用户进行身份验证。为了处理身份验证,tou可以查看OpenId连接,这是Oauth2之上的一个层。OpenId连接将向您的应用程序发送一个签名的id_token,其中包含有关用户身份的信息。
使用OpenId连接对用户进行身份验证之后,您可以与OAuth服务器联系以获得access_token (JWT与否)。此令牌将用于与您的API联系。对于SPA应用程序,建议使用隐式格兰特流。
对于JWT,它用于id_token (来自OpenId连接),并可用于access_token (OAuth2)。对于access_token,您的令牌可以是引用(SPA推荐的)或值。
通过引用,您的令牌对于客户端是不透明的(例如guid)。按值计算,您的令牌是可解析的,所包含的数据可以由客户端读取。
对于要使用的组件,我亲自使用来自RedHat的RedHat。
希望能帮上忙。
https://stackoverflow.com/questions/39058216
复制相似问题