gpt4 book ai didi

spring - Rest,Spring 拥有 OAuth2 服务器 + OAuth2 提供商,如 Facebook、Google、Yahoo

转载 作者:行者123 更新时间:2023-12-04 02:21:00 24 4
gpt4 key购买 nike

在 Spring Boot 应用程序中,我使用 Spring Security 和 Spring OAuth2 保护了我的 Spring MVC REST 端点。我有自己的授权\资源服务器,因此为了与我们的 API 通信,客户端(AngularJS)需要从我的 API 授权服务器获取 accessToken。

一切正常,但对于我的 API 的身份验证/授权,用户需要创建他的帐户并向我们提供他的用户名/密码。

我想简化此过程,并建议用户通过 Google/Facebook/Twitter oAuth 提供商在我的 API 上进行身份验证。

现在我还不清楚它必须如何工作。例如,我的一个想法 - Facebook 将发布自己的 accessToken 并将其传递回我的 API。基于此 accessToken 我的 API 将发出自己的 accessToken 并将其传递回客户端应用程序(AngularJS)。或者我应该将 Facebook accessToken 直接传递给客户端应用程序吗?

所描述案例的正确架构是什么?它应该如何工作?

也许有一些例子可以展示这种基于 Spring 框架的架构?

最佳答案

如果您想将身份验证委托(delegate)给外部提供商,您可以使用 OAuth2ClientAuthenticationProcessingFilter ,或Spring Cloud Security 中提供的便利注释和外部配置.示例(来自 Spring Cloud Security 主页):

应用程序.java:

@SpringBootApplication
@EnableOAuth2Sso
public class Application {
...
}

应用程序.yml:
spring:
oauth2:
client:
clientId: bd1c0a783ccdd1c9b9e4
clientSecret: 1a9030fbca47a5b2c28e92f19050bb77824b5ad1
accessTokenUri: https://github.com/login/oauth/access_token
userAuthorizationUri: https://github.com/login/oauth/authorize
clientAuthenticationScheme: form
resource:
userInfoUri: https://api.github.com/user
preferTokenInfo: false

如果您的应用程序在端口 8080 上运行(我相信),这适用于 github。类似的配置适用于 facebook、cloud foundry、google 和其他 OAuth2 提供商。

关于spring - Rest,Spring 拥有 OAuth2 服务器 + OAuth2 提供商,如 Facebook、Google、Yahoo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29547671/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com