node.js - 来自重定向 URL 的 URL 参数
问题描述
我正在尝试实现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 中获取授权令牌,如下所示:
http://localhost:3000/login?code=3f608c5f1a019e51997e77bcXXXXXX643ea875ad&state=xyz
现在,我想获取上述 URL 中的代码并将其与其他一些参数一起用于发出请求。基本上,我需要该代码作为我的Nodejs应用程序中的变量。
解决方案
您需要创建一个与重定向 URL 匹配的 API。
匹配的 APIhttp://localhost:3000/login?code=<code>&state=<state>
如下所示:
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
是空对象,请在评论中告诉我。
推荐阅读
- woocommerce - Polylang 和 woocommerce:如何翻译货币符号
- c++ - Why the thread may be blocked for longer than the specified duration when we use wait_for?
- batch-file - 批量获取相对路径
- java - 在java的数组中设置范围内的数字
- c# - 根据Route在Controller中注入不同的实现
- google-ads-api - Google 自定义受众/类似受众 API
- javascript - 实现拖放,对行进行垂直排序
- javascript - 用 JS 中的正则表达式替换
- mysql - 当我尝试在本地使用我的网站时出错
- python-3.x - Pandas Dataframe 的操作数无法与形状一起广播