【问题标题】:extracting access token out of string in javascript从javascript中的字符串中提取访问令牌
【发布时间】:2019-04-07 19:10:52
【问题描述】:

我有一个字符串,我需要从这个字符串中获取访问令牌。但是我们还需要确认访问令牌是否存在。

字符串如下。

      ?utm_source=xyz&utm_medium=xyza&utm_campaign=xyzb&access_token=abybsjw16373vdgw 

我需要使用 javascript 从中获取访问令牌。 我想了解人们如何处理此类问题。

【问题讨论】:

标签: javascript reactjs


【解决方案1】:

我们也可以这样做

let str="?utm_source=xyz&utm_medium=xyza&utm_campaign=xyzb&access_token=abybsjw16373vdgw"

       let tokenIsPresent=str.search("access_token")
       if(tokenIsPresent !=-1){
       let token= str.slice(tokenIsPresent+13)
        console.log(token)}
        else{console.log("token is not present")}

我们可以通过 string.search 找到 access_token ,它将返回我们搜索字符串的起始位置,即这里的“50” 然后我们必须添加搜索的长度,即“access_token=”,即 13 然后我们必须将它切成 50+13

【讨论】:

  • 如果access_token 长度发生变化怎么办?这是在后端生成的,因此我们不能保证长度相同,例如你可以看看stackoverflow.com/questions/4408945/…你可以例如切片到字符串的末尾,但我们仍然不确定参数 order 是否相同。我们可以得到access_token的索引,检查我们是否可以找到任何&字符并切到&,如果没有找到,切到最后
  • 无论长度和参数顺序如何,如果我们最后得到“access_token”,无论令牌长度如何,它都会起作用
  • 如果访问令牌长度会改变,例如14,你会切出 13 个字符,最后会漏掉一个字符
  • 你问过“access_token”作为键还是它的值,例如“abybsjw16373vdgw”,这里access_token=abybsjw16373vdgw,它的值每次都应该改变,即“abybsjw16373vdgw”和键,即“access_token”,它将保持不变原样
  • 是的access_token 会是一样的 :) 我认为问题是如何获得 access_token 的价值
【解决方案2】:

你可以试试:

const str = "?utm_source=xyz&utm_medium=xyza&utm_campaign=xyzb&access_token=abybsjw16373vdgw "
const accessParts = str.match('access_token=.*$')[0].split("=")

console.log(accessParts) // ["access_token", "abybsjw16373vdgw "]

【讨论】:

    【解决方案3】:
    let token='';
    if(window.location.href.split('access_token').length>0){
        token=window.location.href.split('access_token')[1].split('&').join(''); 
    }
    if(!token){
        console.log('token is missing');
    }
    

    【讨论】:

      猜你喜欢
      • 2020-12-01
      • 1970-01-01
      • 2018-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-19
      • 1970-01-01
      相关资源
      最近更新 更多