Okta - 检索访问令牌
Okta - Retrieving Access Token
这可能是一个新手问题,但我在 SO 或 Okta forums/guides 上找不到任何答案。我已将我的 Okta 应用程序配置为在用户登录并同意某个范围时重定向到 https://localhost:443/auth/callback
。我正在使用隐式授权并且重定向有效,但在我的 /auth/callback
中,请求查询 headers 和 body 不包含访问令牌。只有当我调用 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
});
那是因为,URL中#
之后的内容叫做URI fragment identifier
,它不会被发送到它在浏览器中使用的服务器,可以通过window.location.hash
您可以使用 ?
代替 #
(并保持原样),它调用 query parameters
并且可以通过 req.query.query_name
访问,在你的案例 query_name
是 access_token、token_type、expires_in...
[响应模式][1]
[1]:https://github.com/okta/okta-auth-js#responsemode-1 可以设置为以下值之一:片段、form_post、查询或 okta_post_message。
参考:https://developer.okta.com/docs/reference/api/oidc/#request-parameters
这可能是一个新手问题,但我在 SO 或 Okta forums/guides 上找不到任何答案。我已将我的 Okta 应用程序配置为在用户登录并同意某个范围时重定向到 https://localhost:443/auth/callback
。我正在使用隐式授权并且重定向有效,但在我的 /auth/callback
中,请求查询 headers 和 body 不包含访问令牌。只有当我调用 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
});
那是因为,URL中#
之后的内容叫做URI fragment identifier
,它不会被发送到它在浏览器中使用的服务器,可以通过window.location.hash
您可以使用 ?
代替 #
(并保持原样),它调用 query parameters
并且可以通过 req.query.query_name
访问,在你的案例 query_name
是 access_token、token_type、expires_in...
[响应模式][1]
[1]:https://github.com/okta/okta-auth-js#responsemode-1 可以设置为以下值之一:片段、form_post、查询或 okta_post_message。 参考:https://developer.okta.com/docs/reference/api/oidc/#request-parameters