Oauth2 SSO 流程

问题描述

我有一个 SpringBoot 2.3.4 小应用程序来测试 SSO Authentication 过程到多个提供者,开放 ID 兼容,如 OktaGoogle、Github ecc..

这很简单,一切正常,但我使用 Thymeleaf 3 实现登录页面,现在我想切换到 Angular 11(或完全 REST 服务)。

问题是身份验证流程以这个表单操作调用开始:

<form method="get" th:action="@{/oauth2/authorization/{clientId}}">
  <button id="login-button" class="btn btn-primary" type="submit">Login</button>
</form>

要手动回复这个电话(也许如果我不能使用 html 表单),我做了一个简单的重定向,如下所示:

return "redirect:http://localhost:8080/oauth2/authorization/okta";

有没有更优雅的方法

谢谢

解决方法

我建议使用 Okta 的 spring boot starter SDK 使其更容易:https://github.com/okta/okta-spring-boot

对于 Angular JS 前端,可以使用 Okta 的 Angular JS SDK:https://github.com/okta/okta-angular