【问题标题】:Getting the Auth0 token获取 Auth0 令牌
【发布时间】:2020-10-30 06:51:37
【问题描述】:

我使用 Auth0 的 Angular SDK,一切正常……除了获取令牌。现在我正在使用您可以从我的仪表板手动获取的令牌。

Auth0Service 包含一个名为 getAccessTokenSilently 的方法,但该令牌无用且很小(不是正确的)我看到我的应用程序将请求加载到 Auth0。我不明白,因为无论如何我都没有编程那个调用......但是那个调用有令牌!

如何获得不记名令牌?

编辑代码示例 但是......改变,关键是console.log不包含正确的密钥,或者至少密钥不能访问后端。

  constructor(private auth0Service : Auth0Service) { }

  getToken = () => {
    this.auth0Service.getAccessTokenSilently().subscribe(z => console.log(z));
  }

【问题讨论】:

  • 您能否提供一个代码示例,您正在使用此getAccessTokenSilently 方法?
  • 是的,我确实得到了一把钥匙,但我不相信它是正确的。我尝试将它用于后端,但它不起作用
  • 我在 github 上浏览了他们的代码,看起来他们使用的方法与您尝试过的方法相同。他们在内部使用它来附加这个令牌以在他们的HttpInterceptor 中请求,所以如果它在应用程序的其他部分工作,它也应该在你的代码中工作。您已经通过身份验证了吗?
  • 是的,对象 auth0Service 的所有其他方法都可以正常工作。像 isAuthenticated$ 一样,当我登录时返回 true,未登录时返回 false。此外,如果没有给出密钥,后端的数据是无法访问的。可以在仪表板中找到的用于测试 api 的不记名密钥工作正常。

标签: angular auth0


【解决方案1】:

@auth0/auth0-spa-js 库中,您可以通过获取 id 令牌声明并从中获取 __raw 属性来获取原始令牌。我想 Angular SDK 上也有类似的机制。

import createAuth0Client from '@auth0/auth0-spa-js';


const auth0Client = await createAuth0Client({
    audience: {AUDIENCE},
    domain: {DOMAIN},
    client_id: {CLIENT_ID}
  })

const claimsInfo = await auth0Client.getIdTokenClaims();

const rawToken = claimsInfo.__raw    // (long token)

【讨论】:

    猜你喜欢
    • 2021-10-20
    • 2017-12-28
    • 2019-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-12
    • 2020-05-30
    • 2019-11-08
    相关资源
    最近更新 更多