0

这可能是一个新手问题,但我在 SO 或 Okta 论坛/指南上找不到任何答案。我已将我的 Okta 应用程序配置为重定向到https://localhost:443/auth/callback用户登录并同意某个范围的时间。我正在使用隐式授权并且重定向有效,但在我/auth/callback的请求查询、标头和正文中不包含访问令牌。只有当我调用res.end()Express 时才会重定向到以下 URL:

https://localhost/auth/callback#access_token=accessTokenHere&token_type=Bearer&expires_in=3600&scope=openid+phone&state=myState

如何检索访问令牌?我的快递路线:

router.get('/auth/callback', (req, res) => {
    console.log(req.headers);  // no access token here
    console.log(req.body);  // {}
    console.log(req.body); // {}
    res.end(); // redirects to https://localhost/auth/callback#access_token=accessTokenHere&token_type=Bearer&expires_in=3600&scope=openid+phone&state=myState
});
4

2 回答 2

0

这是因为,#URL 后面的内容被调用URI fragment identifier,它不会被发送到它在浏览器中使用的服务器,并且可以通过以下方式访问window.location.hash

而不是#您可以使用?(并保持其后的部分保持原样)调用query parameters并可以通过 访问req.query.query_name,在您的情况下query_name是 access_token、token_type、expires_in...

于 2020-10-25T02:11:11.690 回答
0

[响应模式][1]

[1]:https ://github.com/okta/okta-auth-js#responsemode-1可以设置为以下值之一:fragment、form_post、query 或 okta_post_message。参考:https ://developer.okta.com/docs/reference/api/oidc/#request-parameters

于 2020-11-05T15:39:00.723 回答