我正在使用express.node.js。因此,我有以下内容:
app.get('/callback', async function (req, res) {
当用户被发送到我网站的回调部分时,我应该收到这些req&res参数。但是,我在这里遇到问题。我的OAuth2应用程序将用户发送到的网址如下:
https://example.com/callback#access_token=abc
哦,不!这给我带来了一个问题。我无法从req获取access_token!请协助我从该网址检索访问令牌。来自req的参数仅给我/callback
和其他参数,而不给我#access_token = abc
尝试将#替换为%23,这不是NodeJS的问题。阅读https://www.w3schools.com/tags/ref_urlencode.ASP
您可以使用此功能来获取参数,但可以解决
const url= 'https://example.com/callback#access_token=abc'
const url1= 'https://example.com/callback#access_token=abc&access_token1=abc1'
function getparams(url){
const paramsobj={}
if(url.includes('&')){
const urlarray= url.split('#')
const parampairs =urlarray[1].split('&')
parampairs.forEach(p => {
const nwpair= p.split('=')
paramsobj[nwpair[0]]=nwpair[1]
});
}
if(!url.includes('&')){
const urlarray= url.split('#')
const keyvalue=urlarray[1].split('=')
const arr=keyvalue
let i=0
while(i<arr.length+2) {
key=keyvalue.shift()
value=keyvalue.shift()
paramsobj[key]=value
i++
}
}
return paramsobj
}
params=getparams(url)
console.log(token=params.access_token1)