解析express应用程序中的url哈希片段

Sye*_*yed 4 javascript oauth node.js express contentful

我正在编写一个快速应用程序,我必须使用 oauth 2.0 流程对用户进行身份验证。我已成功将用户重定向到 oauth 提供程序,并且提供程序在 oauth 回调中发送访问令牌。就像是

http://localhost:4000/oauth/callback#access_token=<token>
Run Code Online (Sandbox Code Playgroud)

现在我有一个快速路线处理程序,例如

app.get('/oauth/callback', function(req, res, next) {
});
Run Code Online (Sandbox Code Playgroud)

我知道哈希片段不会传递到服务器,但这是一个 oauth 回调。

如何在路由处理程序中获取 url 哈希片段?

Tak*_*aki 5

URL 包含access_token参数。这意味着您已经使用了隐式流。在隐式流中,参数必须嵌入到片段部分。该行为不是 OAuth 服务器的错误。

如果您想通过查询部分接收参数,则必须使用授权代码流

此外,如果 OAuth 服务器支持OAuth 2.0 Form Post Response Mode,您的重定向端点可以POST通过添加response_mode=form_post到您的授权请求来接收请求数据。该规范与 trodrigues 描述的想法类似。

下表显示了“ response_type/ response_mode”与“HTTP 状态/数据位置”之间的关系。

在此输入图像描述

有关授权端点响应格式的详细信息,请参阅Authlete权威指南中的“响应格式” 。