如何获得正确的Auth0承载令牌?

Moe*_*ler 3 jwt koa auth0

我想为我的node.js应用程序获取Auth0持票令牌.

这样做我获得了持票人令牌:

curl https://myproject.eu.auth0.com/oauth/token --data "client_id=ID&client_secret=SECRET&type=web_server&grant_type=client_credentials"

哪个归我:

{
  "access_token": *BEARER TOKEN*,
  "token_type": "Bearer"
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我在Auth标题中将该标记用于邮递员,它会告诉我: Invalid token.那么如何获得正确的承载令牌呢?

我的服务器看起来像这样:

const koa = require('koa');
const route = require('koa-route');
const jwt = require('koa-jwt');
const testRoute = require('./testRoute');

const app = koa();
//Copy pasted those values from my auth0 dashboard
const authentication = jwt({
  secret: new Buffer(*CLIENT_SECRET*, 'base64'),
  audience: *YOUR_CLIENT_ID*
});
app.use(authentication);
app.use(route.get('/test', testRoute));
app.listen(3000);
Run Code Online (Sandbox Code Playgroud)

我按照本指南进行设置:https://auth0.com/docs/quickstart/backend/nodejs/.

Rod*_*ato 7

access_token是一个不透明的令牌,而不是您的应用程序所期望的JWT.如果你scope=openid在打电话时使用,/oauth/token你也会回来id_token,这是你的API应该接受的JWT.

您可以scope在此处阅读有关参数如何在Auth0上下文中工作的更多信息:https://auth0.com/docs/scopes