我应在应用程序上使用哪种OAuth 2工作流程

时间:2019-04-05 09:56:30

标签: java spring reactjs oauth-2.0

这个问题更具理论性,所以我不知道它是否应该在这里。 我想使用OAuth2对用户进行身份验证。我在Google上搜索时发现,OAuth 2的工作流程很多,我不知道该用什么。

我的前端是用React开发的,后端是用springboot在Java上开发的。

用户将保存在数据库或ldap服务器上,具体取决于用户要使用的用户。

我的应用程序也是单页应用程序,它唯一刷新的时间是用户注销时。

感谢您的帮助!

4 个答案:

答案 0 :(得分:1)

我认为您对OAuth2有一些误解。 OAuth2是授权协议。如果要开发身份验证系统,那么它不适合您。

Spring Security或Apache Shiro框架将更适合您的身份验证系统。

如果您的后端系统想要向您的客户端授权一些权限。那么您可以使用OAuth2。例如,如果您的客户中有人想要授权第三方服务访问您的资源,那么OAuth2将是最佳选择。

答案 1 :(得分:0)

正如Zilong所解释的那样,OAuth2是授权协议。但是OAuth2并不完全特定于Java,但它也可以与React一起使用。您可以将此link用于React + Java OAuth2的示例。我认为这就是您要寻找的。

答案 2 :(得分:0)

恐怕您的追求不够具体。但是要找出要使用的体系结构和OAuth2流,请查看OAuth 2.0 for Browser-Based Apps RFC。有几种选择-您可以将SPA或后端作为OAuth2客户端使用。看看类似的this one这样的SO问题。

然后,出于身份验证的目的,了解OpenId Connect(OAuth2扩展名)及其ID令牌。要获取有关用户的信息,可以使用ID令牌或user info enpoint

答案 3 :(得分:0)

oAuth2中有4种授权类型,分别用于不同的场景。请参阅:Securing an existing API with our own solution

您正在寻找password credential这样的人。

Resource owner password credential (ROPC):使用者(应用程序)使用使用apikey,secret,用户名和密码创建的承载令牌进行呼叫。通常在您(您的授权服务器)已经知道用户(用户数据库在您自己的系统中处理)时使用。