问题 如何从网址获取访问令牌[复制]


这个问题在这里已有答案:


8206
2018-04-29 04:49


起源



答案:


我喜欢RegEx所以这是一个RegEx答案:

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];

access_token 是:

ya29.5HxuYol1Io8JLeGePDznbfkkwu_PC4uodKwG8_1clFYAn9AgdOV1WGpOTNQP3s76HAsn7Y4zWw

(直接来自控制台)

小提琴


8
2018-04-29 04:56



我也喜欢Regex!很好的答案 - Stephn_R


答案:


我喜欢RegEx所以这是一个RegEx答案:

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];

access_token 是:

ya29.5HxuYol1Io8JLeGePDznbfkkwu_PC4uodKwG8_1clFYAn9AgdOV1WGpOTNQP3s76HAsn7Y4zWw

(直接来自控制台)

小提琴


8
2018-04-29 04:56



我也喜欢Regex!很好的答案 - Stephn_R


在JS中使用URL类:

var token = new URL("http://localhost:3000/_oauth/google#access_token=ya29.5HxuYol1Io8JLeGePDznbfkkwu_PC4uodKwG8_1clFYAn9AgdOV1WGpOTNQP3s76HAsn7Y4zWw&token_type=Bearer&expires_in=3600").hash.split('&').filter(function(el) { if(el.match('access_token') !== null) return true; })[0].split('=')[1];

alert(token);


2
2018-04-29 04:56



似乎包括 &token_type 最后 - Downgoat
修复。添加了一点正则表达式的香料和一些胡椒光滑的过滤 - Stephn_R