如何在NodeJS中访问当前URL

问题描述 投票:0回答:2

我正在使用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

javascript node.js express url nodejs-server
2个回答
0
投票

尝试将#替换为%23,这不是NodeJS的问题。阅读https://www.w3schools.com/tags/ref_urlencode.ASP


0
投票

您可以使用此功能来获取参数,但可以解决

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)
© www.soinside.com 2019 - 2024. All rights reserved.