springboot响应oauth,使用前端maven插件

gt0wga4j  于 2022-11-28  发布在  Spring
关注(0)|答案(1)|浏览(144)

我正在使用带有springoauth 2依赖的google api。我有我的springboot项目加载我的react脚本,但是我如何合并oauth2 authenticationToken。

package com.logic.springbootwithreact.controllers;
import org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

//@Controller
@RestController
@CrossOrigin
public class ClientForwardController {
    @GetMapping(value = "/**/{path:[^\\.]*")
    public String forward(OAuth2AuthenticationToken oAuth2AuthenticationToken) {
        return "forward:/";
    }
}

有没有人用frontend-maven-plugin和oauth2做过类似的项目,并且知道如何制作控制器以及在App.js中编码什么
我试过运行springboot应用程序并调用localhost:8080,并得到react页面加载,但我首先想通过google的oauth2过程。

yx2lnoni

yx2lnoni1#

您应该使用OAuth2 / OIDC客户端库来处理React应用中的登录和令牌管理:获取授权代码、交换令牌代码、处理令牌刷新和最后授权请求(添加access-token作为授权头)。
带有@RestControllers的Spring应用程序是资源服务器。请参见those tutorials来配置安全性。
请注意,在资源服务器中使用Google身份可能需要使用内省对其进行配置(而不是JWT解码器)。这会严重影响性能,而且有点棘手(内省端点不是标准的,您必须在安全配置中提供一个自定义的内省器)。您应该考虑使用一个能够联合Google身份的中间授权服务器。许多OIDC解决方案都包括“社交登录”。这将允许您使用Google身份(以及Facebook、Twitter、Github等),还可以为没有Google帐户的用户创建帐户。Keycloak是一个著名的内部部署解决方案,但您也可以找到SaaS,如Auth 0、Amazon Cognito等。

相关问题