Задать вопрос
@merss

Как взять токен из адресной строки (oauth)?

В адресную строку приходит токен вида:
http://hostname/#access_token=kcReHCFnOhJZWcqEJxmgbBdNMt4SXPLK&state=


и он постоянно обновляется, какое условие прописать, чтобы он перестал обновляться
пробовал так:
if(location.hash.length > 1)
  • Вопрос задан
  • 1409 просмотров
Подписаться 1 Оценить 2 комментария
Решения вопроса 1
AlekseyNemiro
@AlekseyNemiro
full-stack developer
Вы должны сохранить полученный маркер доступа (access token). В случае с JavaScript это можно сделать в sessionStorage (в рамках текущей сессии) или localStorage (сохранить на длительный срок), либо передать на сервер (более надежный вариант).

Код сохранения маркера доступа в хранилище браузера может быть примерно таким:
if (window.location.hash != '') {
  var hash = window.location.hash.substring(1);
  var accessToken = hash.substr(hash.indexOf('access_token=')).split('&')[0].split('=')[1];
  sessionStorage.setItem('access_token', accessToken);
  // для безопасности, из url лучше удалить access_token
  window.location.hash = '';
  // window.location.href = window.location.href.substr(0, window.location.href.indexOf('#'))
}

// и далее использовать сохраненный маркер доступа
var currentAccessToken = sessionStorage.getItem('key');
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы