根据 Auth0 SPA 应用程序定义(使用 Angular),我有一个 SPA 应用程序。我使用 Auth0 作为客户端登录机制。我的应用程序允许用户使用两个服务提供商、IDP 或社交关系登录:Facebook or Google
. (鉴于我已经为这些 IDP 域下的应用程序提供了客户端 ID 和机密)https://auth0.com/docs/connections。如果用户成功通过身份验证,我的应用程序将返回一个包含访问代码的数组,该访问代码可用于调用 IDP 的 API ( https://auth0.com/docs/tokens/identity-provider-access-tokens )。
成功案例:用Facebook登录后。我可以检索访问令牌并调用 Facebook 的图形 API。
问题:使用 Google 登录时,我可以检索访问令牌。但是,当我使用该访问令牌调用 Youtube Data v3 API 时,我收到一个:
Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.
我试过的:
Auth0SPA's
getTokenSilently()
- 我不知道这个令牌返回什么类型。文档不明确。https://auth0.github.io/auth0-spa-js/classes/auth0client.html#gettokensilentlyAuth0ManagementAPI 的
GET /user
端点 - 返回被 Youtube 数据 API 拒绝的访问令牌https://auth0.com/docs/api/management/v2?_ga=2.178387047.219514694.1599842538-835787596.1599842538#!/Users/get_users_by_id我尝试通过 Auth0 启用的企业连接创建企业 OpenID 连接连接 - 没有返回身份数组(包含访问令牌)。https://auth0.com/docs/connections/enterprise/oidc
我想回答的问题
我想出了解决方法,但不幸的是它们影响了用户体验。我想知道 getTokensSilently 返回什么,令牌是什么?
我必须进行哪些更改才能使用 IDP 返回的访问令牌(在身份数组下)来调用 Youtube Data v3 API?