我尝试使用节点oidc提供程序使用授权代码流获取access_token和refresh_token。我获得了auth_code。但无法获取访问令牌和刷新令牌如何解决此问题。我参考了许多文档,但无法获取。
OIDC配置
const oidc = new Provider('http://localhost:3000', {
clients: [
{
client_id: 'foo',
client_secret: 'bar',
redirect_uris: ['https://jwt.io'], // using jwt.io as redirect_uri to show the ID Token contents
response_types: ['code'],
grant_types: ['authorization_code'],
token_endpoint_auth_method: 'none',
},
],
cookies: {
keys: 'secretkey'
},
pkce: {
required: true
},
});
// Heroku has a proxy in front that terminates ssl, you should trust the proxy.
oidc.proxy = true;
app.use(oidc.callback())
我还获得了auth_code
如何使用node-oidc提供程序获取访问令牌和刷新令牌
2条答案
按热度按时间zbsbpyhn1#
1.您的访问令牌请求缺少PKCE code_verifier参数。
1.客户端的身份验证方法被设置为
none
,因此不需要传递任何授权头。你可以用
DEBUG=oidc-provider:*
启动你的提供程序进程来获得这些错误的更多细节。pgvzfuti2#
客户端无效,但您输入了“client_id”,这意味着您正在启用功能:
因此,您必须提供
client_secret
,而在oidc-provider源代码中,我看到它总是选中code_verifier
,因此您应该提供它