Javascript 如何从url获取访问令牌

Javascript 如何从url获取访问令牌,javascript,jquery,url,uri,Javascript,Jquery,Url,Uri,我在通过谷歌认证后得到了这个URL http://localhost:3000/_oauth/google#access_token=ya29.5HxuYol1Io8JLeGePDznbfkkwu_PC4uodKwG8_1clFYAn9AgdOV1WGpOTNQP3s76HAsn7Y4zWw&token_type=Bearer&expires_in=3600 如何从此url获取access\u令牌值 我尝试了以下URL的解决方案,但没有一个有效 在JS中使用URL类: v

我在通过谷歌认证后得到了这个URL

http://localhost:3000/_oauth/google#access_token=ya29.5HxuYol1Io8JLeGePDznbfkkwu_PC4uodKwG8_1clFYAn9AgdOV1WGpOTNQP3s76HAsn7Y4zWw&token_type=Bearer&expires_in=3600
如何从此url获取
access\u令牌

我尝试了以下URL的解决方案,但没有一个有效


在JS中使用URL类:

var-token=新URL(“http://localhost:3000/_oauth/google#access_token=ya29.5HxuYol1Io8JLeGePDznbfkkwu_PC4uodKwG8_1clFYAn9AgdOV1WGpOTNQP3s76HAsn7Y4zWw&token_type=Bearer&expires_in=3600).hash.split('&').filter(函数(el){if(el.match('access_token')!==null)返回true;}[0]。split('='))[1];

警报(令牌)使用现代方法,有更好、更可靠的方法获取访问令牌字段:

var urlString = 'http://localhost:3000/_oauth/google#access_token=ya29.5HxuYol1Io8JLeGePDznbfkkwu_PC4uodKwG8_1clFYAn9AgdOV1WGpOTNQP3s76HAsn7Y4zWw&token_type=Bearer&expires_in=3600';

var url = new URL(urlString);
// OR: If you want to use the current page's URL
var url = window.location;

var access_token = new URLSearchParams(url.search).get('access_token');
您还可以看到这种方法如何使获取其他参数变得容易。除IE的旧实例外,所有浏览器都支持这种
URLSearchParams
方法


如果上面的操作不起作用(对我来说不起作用),只需将“哈希”添加到
window.location
,这也是单行代码

var access_token = new URLSearchParams(window.location.hash).get('access_token');
旧答案: 我喜欢正则表达式,所以这里有一个正则表达式的答案:

var url = 'http://localhost:3000/_oauth/google#access_token=ya29.5HxuYol1Io8JLeGePDznbfkkwu_PC4uodKwG8_1clFYAn9AgdOV1WGpOTNQP3s76HAsn7Y4zWw&token_type=Bearer&expires_in=3600',
    access_token = url.match(/\#(?:access_token)\=([\S\s]*?)\&/)[1];
访问令牌
是:

ya29.5HXUYOL1O8JLEGEPDZNBFKKWU PC4uodKwG8\U LFYAN9AGDOV1WGPOTNQP3S76HASN7Y4ZWW

(直接从控制台)


我也喜欢正则表达式!很好的回答你如何获得令牌类型和其他url参数?似乎在末尾包含了
&token\u type
。添加一点正则表达式香料和一些辛辣的平滑过滤器,而不是
新URL(…)
,可以在上面的表达式中使用
文档.location