来自重定向网址的网址参数

时间:2018-09-23 07:35:24

标签: node.js api redirect oauth-2.0 request

我正在尝试实施 OAuth2 服务,以便能够从服务器接收授权代码,并且服务器使用参数将我重定向到redirect_url >代码 (其中代码=授权令牌(授权授予代码))

现在,我需要使用此授权令牌向服务器发出请求。但是我无法从重定向的URL中获取令牌来在我的应用程序中使用。

index.js

app.get('/oauth2', function(req, res){
res.redirect('https://api.codechef.com/oauth/authorize? response_type=code&client_id=CLIENT_ID&state=xyz&redirect_uri=http://localhost:3000/login');

});

使用上面的代码片段,我可以在重定向的URL中获得 Authorization令牌,如下所示:

http://localhost:3000/login?code=3f608c5f1a019e51997e77bcXXXXXX643ea875ad&state=xyz

现在,我想在上面的URL中获取代码,并将其与其他一些参数一起用于发出请求。基本上,我需要 code 作为我的 Nodejs 应用程序中的变量。

1 个答案:

答案 0 :(得分:1)

您需要创建与重定向的URL匹配的API。

http://localhost:3000/login?code=<code>&state=<state>匹配的API如下:

app.get('/login', (req, res) => { /** Logic */ })

一旦有了,就可以从req获取代码和状态了:

app.get('/login', (req, res) => {
    console.log('code', req.query.code)
    console.log('state', req.query.state)
    /** Logic */
    res.json(req.query); // <-- send them back in case you want them in response
})

如果您仍然将req.query作为空对象,请在评论中告诉我。