微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Okta-检索访问令牌

如何解决Okta-检索访问令牌

这可能是一个新手问题,但我在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
});

解决方法

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

您可以使用#(可以通过?访问)来代替query parameters,并使用req.query.query_name(并保留后面的部分)。 query_name是access_token,token_type,expires_in ...

,

[responseMode] [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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。