【问题标题】:Angular 4/5 + Spring Boot + Oauth2 supportAngular 4/5 + Spring Boot + Oauth2 支持
【发布时间】:2018-08-18 05:18:51
【问题描述】:

我的网络应用程序是用 Angular 4/5 和 Spring Boot 构建的。现在我想将用户帐户添加到我的应用程序中,但我遇到了一些问题。我想要我的 Auth serwer(在 Spring Boot 中),并且我想要使用像 Facebook 和 Google 这样的提供商。我的第一个问题是,当用户选择 Facebook 进行身份验证时,我的资源服务器将如何知道谁在请求资源。当我使用自己的 Auth serwer 时,我会这样做:

@GetMapping("/user/name")
public ResponseEntity<String>(Principle principle) {
     return new ResponseEntity<String>(principle.getName(), HttpStatus.OK);
}

这是可行的,但是当用户使用 Facebook 或 Google auth 时如何获取用户名?

我的第二个问题是如何在 Angular 4 中正确处理过期令牌时间。

我的第三个也是最后一个问题。我的服务器中的一些资源将可用于 未登录用户(匿名),那么我如何保护我的资源以防止我的客户以外的其他人使用我的 API?

如果您有一些建议或示例,请帮助!

【问题讨论】:

    标签: spring angular spring-boot oauth-2.0 spring-security-oauth2


    【解决方案1】:

    不要担心对您的问题的粗鲁评论,单点登录 (SSO) 可能非常复杂。

    如果您使用 Facebook 和 Google 作为可选的 SSO 提供商,那么您必须意识到,当您请求时,这些提供商会在用户信息旁边为您提供某种唯一标识符。

    Spring Security 和相应的 Spring Boot 自动配置对将 SSO 用户信息链接到 Principal 有一些很好的支持。我将在下面添加一些很好的参考资料,以帮助理解 Springs 解决方案。由于未列出您的版本,因此我将假设 Spring Boot 2 和 Spring Security 5。

    如果您希望做的不仅仅是 SSO,您还可以查看 Spring Social

    【讨论】:

      猜你喜欢
      • 2020-05-26
      • 2018-03-14
      • 2019-09-17
      • 2019-02-10
      • 2021-04-09
      • 2018-10-29
      • 2020-09-08
      • 2018-09-07
      • 2020-07-07
      相关资源
      最近更新 更多