当前位置: 首页 > 知识库问答 >
问题:

Rest和Spring拥有OAuth2服务器+Facebook、Google、Yahoo等OAuth2提供商

燕凯旋
2023-03-14

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

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

对于所描述的案例,正确的体系结构是什么?它应该如何工作?

共有1个答案

嵇浩淼
2023-03-14

如果希望将身份验证委托给外部提供者,可以使用OAuth2ClientAuthenticationProcessingFilter或Spring Cloud Security中提供的方便注释和外部配置。示例(来自Spring云安全首页):

aplication.java:

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

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
 类似资料:
  • 在Spring Boot应用程序中,我有一个OAuth2授权/资源服务器。基于此和Spring Security性,我已经保护了Spring MVC REST APIendpoint。 除此之外,我还想基于Twitter、Facebook、Google等第三方OAuth提供商为我的RESTendpoint添加身份验证。 在我的应用程序中,我有两个实体-和。表示社交网络中的用户配置文件。可以有0-*

  • 我在下面设置Spring配置: 和Maven设置如下:

  • 我需要了解在我的项目范围内使用autheorizaion服务器的便利性。 我们正在实现我们的服务并将其部署到客户环境中。 客户基础结构已经提供了一种身份验证机制,以便对用户进行身份验证。 此机制拦截所有通信并将用户重定向到“登录”表单。 之后,用户被重定向到我们的服务,我们必须处理和消化它,并使用JWT令牌进行响应。 这是我感到迷茫的地方: 我在想: 使用Spring oauth2 向授权服务器请

  • 问题内容: 我们已经设置了OAuth2授权服务器,因此我需要创建一个相应的资源服务器(单独的服务器)。我们计划使用Spring Security OAuth2项目。他们关于设置资源服务器的文档: https://github.com/spring-projects/spring-security- oauth/wiki/oAuth2#resource-server-configuration 应该

  • 我们已经设置了一个OAuth2授权服务器,所以我需要创建一个相应的资源服务器(单独的服务器)。我们计划使用Spring Security OAuth2项目。他们关于设置资源服务器的文档: https://github.com/spring-projects/spring-security-oauth/wiki/oauth2#资源-服务器-配置 应该指向令牌处理bean。然而,令牌处理似乎是由服务器

  • 试图让UserDetailsService为我设置的oauth2资源服务器工作。我能够成功地对jwt进行身份验证,但是我所做的一切似乎都无法让它调用loadUserByUsername方法。它最初使用的是SAML,并且可以工作,但现在我切换到了Oauth2,我无法让它工作。 我在google上发现,我只需要用@service将类注册为bean,spring就会把它捡起来,但它不起作用。我还尝试通过