我正在使用带有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过程。
1条答案
按热度按时间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等。