从url字符串中检索访问令牌

时间:2013-10-30 13:23:22

标签: php jquery regex url query-string

我正在使用谷歌api,在网址中我得到这样的结果:

  

http://website.com/generate-token/#access_token=ya29.AHES6ZTJwb9lzb0lua81oHa47-8ImcJf-8qE-02kIn8JcgEv&token_type=Bearer&expires_in=3600

我试过了:

$_SERVER['QUERY_STRING']
$url =  "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

但我得到的是http://website.com/generate-token/

我如何获得完整的网址并使用正则表达式获取access_token或我可以获得的任何其他方式?

1 个答案:

答案 0 :(得分:0)

我的两分钱(因为你用jQuery标记它,我认为Javascript是一个有效的解决方案):

var url = 'http://website.com/generate-token/
           #access_token=ya29.AHES6ZTJwb9lzb0lua81oHa47-8ImcJf-8qE-
           02kIn8JcgEv&token_type=Bearer&expires_in=3600';

function getParameterByName(name, url) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regex = new RegExp("[\\?&#]" + name + "=([^&#]*)"),
        results = regex.exec(url);
    return results == null ? "" : 
           decodeURIComponent(results[1].replace(/\+/g, " "));
}

alert(getParameterByName('access_token', url));

http://jsfiddle.net/yejwF/