angular - 我正在使用带有 angular11 的 angularx-social-login 来通过 gmail 登录,我正在获取 accessToken 作为响应,但我想要授权码作为响应
问题描述
我需要授权码
{“代码”:“4/yU4cQZTMnnMtetyFcIWNItG32eKxxxgXXX-Z4yyJJJo.4qHskT-UtugceFc0ZRONyF4z7U4UmAI”}
像这样响应刷新令牌
{
provide: 'SocialAuthServiceConfig',
useValue: {
autoLogin: true,
providers: [
{
id: GoogleLoginProvider.PROVIDER_ID,
provider: new GoogleLoginProvider(CLIENT_ID, {
response_type: 'authorization_code',
access_type: 'offline',
}),
},
],
} as SocialAuthServiceConfig,
}
解决方案
您需要了解 Oauth2 的工作原理 当用户同意您的访问时,将返回授权码。
然后,您的应用程序接收授权代码并与授权服务器交换访问令牌和刷新令牌。
访问令牌可用于访问 Google api 和私人用户数据。然而,这个令牌是短暂的,它只会工作一个小时。
刷新令牌是长期存在的,可用于在过期后请求新的访问令牌。
我需要这样的授权码来响应刷新令牌
因此,为了响应此语句,刷新令牌响应将永远不会返回授权代码。只有在流程的第一步请求用户同意才会返回授权码。
如果您有兴趣了解 Oauth2 的工作原理,您可能会感兴趣。用 curl 理解 Oauth2。
推荐阅读
- elasticsearch - elasticsearch中的文本类型是否有类似ignore_below的东西?
- spring-boot - 无法自动接线。没有'StateMachineFactory的bean
'类型找到 - ruby-on-rails - ActionView::Template::Error 从 Rails 4.0 升级到 Rails 4.2.11.3
- google-apps-script - 将新文件移动到特定文件夹!谷歌脚本
- php - Woocommerce 将已删除的产品 ID 重新链接到现有订单的现有产品
- python - 发生异常时如何截取屏幕截图并通过电子邮件发送?(Python)
- post-quantum-cryptography - McEliece Java 中的错误填充
- sql - 从 3 个不同的表中获取建议
- makefile - 如何使用通配符删除 makefile 中的重复?
- angular - 如何在不监视方法的情况下测试角度路由器导航