2015-04-29 2 views
9

я получаю этот URL после того, как я аутентифицирован GoogleКак получить маркер доступа от URL

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

Как получить access_token значение из этого URL?

Я попытался решения в следующих URLs, ни один из них не работают

How can I get query string values in JavaScript?

How to get the value from the GET parameters?

Using the GET parameter of a URL in JavaScript

ответ

5

Мне нравится 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

(непосредственно с пульта)

Fiddle

+0

Я тоже люблю Regex! Хороший ответ –

2

использование Make класса URL в JS:

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

+1

, кажется, включает '& token_type' в конце – Downgoat

+1

Исправлено. Добавлено в немного регулярных выражений и немного перечной гладкой фильтрации –

Смежные вопросы