如何正确选择自己的Oauth2服务器和第三方oauth2服务器

问题描述 投票:0回答:1

目前我有4个项目,项目A是作为前端的react项目,可以生成JWT令牌的OAuth服务器项目,资源服务器项目A(例如

user-server
,有像
/login
/register
这样的控制器) /userInfo
..哪个项目A将调用,对于
userInfo
,它需要身份验证,资源服务器项目B(例如
payment-server
)并具有像
/payByCredit
这样的控制器。目前我所拥有的将如下:

现在我的问题是我的ReactJS项目将允许第三方登录,例如谷歌,我现在的理解是我的ReactJS项目需要添加一个新按钮说

Login with Google
并指向我的
user-server/login-with-google
,并在我的
user-server 
,添加新的控制器,在配置中添加
oauth2.client.registration.google.clientId
oauth2.client.registration.google.clientSecret
等...然后
userServer
将把
access_token
返回给ReactJS。但是
access_token
是从google生成的,如果我的ReactJS项目使用这个令牌并尝试从
payByCredit
访问
paymentServer
,我相信它会失败,如何使
paymentServer
也授权和验证
access_token
与谷歌返回?还是我理解有误?

reactjs oauth-2.0
1个回答
0
投票

在典型的 OIDC 流程中,您的 FE (

ReactJS
) 直接通信。与
authServer
(第一或第三)方获取访问令牌,然后将其发送到资源服务器 (
userServer
),资源服务器验证令牌,并发布资源(信息)

所以,我愿意

  1. (第 3 方 OIDC)
    ReactJS
    ->
    Google Server
    并获得
    GoogleAuthToken
  2. (代币兑换)
    ReactJS
    发送
    GoogleAuthToken
    userServer
    , 2.1. (后端令牌流程)
    userServer
    验证
    GoogleAuthToken
    并将正确的信息发送回
    ReactJS
    (第5步。)
  3. 继续返回的信息(第6步以后)
© www.soinside.com 2019 - 2024. All rights reserved.