Javascript 如何从url获取访问令牌
我在通过谷歌认证后得到了这个URLJavascript 如何从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
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
。