这个问题更具理论性,所以我不知道它是否应该在这里。 我想使用OAuth2对用户进行身份验证。我在Google上搜索时发现,OAuth 2的工作流程很多,我不知道该用什么。
我的前端是用React开发的,后端是用springboot在Java上开发的。
用户将保存在数据库或ldap服务器上,具体取决于用户要使用的用户。
我的应用程序也是单页应用程序,它唯一刷新的时间是用户注销时。
感谢您的帮助!
答案 0 :(得分:1)
我认为您对OAuth2有一些误解。 OAuth2是授权协议。如果要开发身份验证系统,那么它不适合您。
Spring Security或Apache Shiro框架将更适合您的身份验证系统。
如果您的后端系统想要向您的客户端授权一些权限。那么您可以使用OAuth2。例如,如果您的客户中有人想要授权第三方服务访问您的资源,那么OAuth2将是最佳选择。
答案 1 :(得分:0)
正如Zilong所解释的那样,OAuth2是授权协议。但是OAuth2并不完全特定于Java,但它也可以与React一起使用。您可以将此link用于React + Java OAuth2的示例。我认为这就是您要寻找的。 p>
答案 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,用户名和密码创建的承载令牌进行呼叫。通常在您(您的授权服务器)已经知道用户(用户数据库在您自己的系统中处理)时使用。