我已经通过 Google OAuth 完成了
fastapi-users==12.0.0
的第一步工作,但一旦我从 access_token
获得 /auth/google/callback
,我不知道如何处理它。
fastapi
日志显示User <user_id> has registered
,并且每个表中都会添加一个新行(user
、oauth_account
),所以这很好。
到目前为止我已经:
GET /auth/google/authorize
返回带有 authorization_url
的 JSON。authorization_url
并通过 https://accounts.google.com/signin
处的提示进行身份验证。/auth/google/callback?state=<some_token>&scope=<email, profile, user scopes>=0&prompt=consent
,其中显示 {"access_token":<access_token>,"token_type":"bearer"}
。我该怎么办
access_token
?要访问专用端点,我是否需要将其包含在以后每个请求的标头中?
对于这个严格的谷歌流程,我是否需要使用任何其他端点(例如。
/auth/jwt/login
,/auth/register
,/auth/request-verify-token
,/auth/verify
)?
我如何通过 swagger 文档完成这个过程?授权表单 (
OAuth2PasswordBearer
) 当前显示 Token URL: auth/jwt/login
和 Flow: password
)。我根本不需要改变它吗?
我应该如何处理该 access_token?要访问专用端点,我是否需要将其包含在以后每个请求的标头中?
是的。您需要将其包含为授权标头才能访问受保护的资源(需要授权的资源)。
对于这个严格的谷歌流程,我是否需要使用任何其他端点(例如/auth/jwt/login、/auth/register、/auth/request-verify-token、/auth/verify)?
Google Oauth 流程中不使用这些端点。这是使用凭据(即用户名和密码)进行正常登录的情况。端点
/auth/jwt/login/
获取您的凭据并使用 JWT 令牌进行响应,类似于您将从 /auth/google/callback
收到的内容。现在,您需要将此令牌存储在前端客户端或调用端点的任何其他服务中,因为 JWT 不存储在后端服务器中。