Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.11.2014, 15:18
Аватар для Shasoft
Профессор
Отправить личное сообщение для Shasoft Посмотреть профиль Найти все сообщения от Shasoft
 
Регистрация: 03.03.2009
Сообщений: 156

Проверка авторизхации пользователя при старте
Ситуация такая. При авторизации я записываю в куку token, а в свой сервис Auth имя пользователя и его id.
Куда лучше вставить проверку при следующем открытии страницы?
Т.е. пользователь отклыл сайт и у него есть token. Однако он уже может быть невалиден и мне нужно это проверить (и если он валиден, то вернуть с сервера ID и имя пользователя).

Как вариант делать это в моем сервисе Auth при его создании. Но может это нужно делать в config или еще каком месте? Как это делается по-нормальному (т.е. по правильному)?
Ответить с цитированием
  #2 (permalink)  
Старый 10.11.2014, 15:42
Аватар для Tek
Tek Tek вне форума
Профессор
Отправить личное сообщение для Tek Посмотреть профиль Найти все сообщения от Tek
 
Регистрация: 22.02.2012
Сообщений: 212

можно слушать событие роутинга в run или конфиге:
$rootScope.$on('$routeChangeStart', function (event, next) {
    Auth.loginCheck(next);
});
Ответить с цитированием
  #3 (permalink)  
Старый 10.11.2014, 16:02
Аватар для Shasoft
Профессор
Отправить личное сообщение для Shasoft Посмотреть профиль Найти все сообщения от Shasoft
 
Регистрация: 03.03.2009
Сообщений: 156

Tek,
Я плохо объяснил

Когда я писал про открыл "страницу сайта", то я имел ввиду следующий процесс:
Пользователь открыл сайт, авторизовался. Потом закрыл БРАУЗЕР. На следующий день открыл БРАУЗЕР и в нем открыл сайт. Вот когда он вновь зашел на сайт, то нужно проверить валидный у него токен в кукисах или нет и при этом вернуть барузеру данные о пользователе, если токен валидный.

А насколько я понимаю, ваше решение позволяет проверять авторизацию при переходе между страницами сайта. Такого не нужно. Валидность токена проверяется при входе на сайт и все. При переходе между страницами проверять не нужно.
Ответить с цитированием
  #4 (permalink)  
Старый 10.11.2014, 16:14
Аватар для Tek
Tek Tek вне форума
Профессор
Отправить личное сообщение для Tek Посмотреть профиль Найти все сообщения от Tek
 
Регистрация: 22.02.2012
Сообщений: 212

Эм, если вы говорите про rest модель, то это работает немного не так. Rest - протокол без состояний поэтому на любой запрос на бэкэнд отправляется token, если ключ не валидный бэк кидает ошибку. В конфиге вешается перехватчик который следит смотрит что не пришел 401 (или 511 - обычно) ответ. Если пришел просим пользователя перелогиниться.

Последний раз редактировалось Tek, 10.11.2014 в 16:17.
Ответить с цитированием
  #5 (permalink)  
Старый 10.11.2014, 16:31
Аватар для Shasoft
Профессор
Отправить личное сообщение для Shasoft Посмотреть профиль Найти все сообщения от Shasoft
 
Регистрация: 03.03.2009
Сообщений: 156

Схема именно такая и планируется (не всё еще сделал). Однако на клиенте нужно знать пользователь активен или нет. И если нет, то показывать/скрывать некоторые пункты меню.
Хотя, если подумать, то возможно на клиенте и действительно ничего кроме токена не нужно будет.
Ответить с цитированием
  #6 (permalink)  
Старый 10.11.2014, 16:49
Аватар для Tek
Tek Tek вне форума
Профессор
Отправить личное сообщение для Tek Посмотреть профиль Найти все сообщения от Tek
 
Регистрация: 22.02.2012
Сообщений: 212

ну если на клиенте не ведется тотальное кэширование всего и вся (если ведется то непонятно зачем), то при загрузке приложения будет как минимум 1ин запрос, он то и даст понять статус пользователя.
Ответить с цитированием
  #7 (permalink)  
Старый 10.11.2014, 16:49
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Shasoft,
На клиента отсылаете элемент активности
Типично их несколько
К примеру Фразы:
Привет Ник, Либо привет Гость,
Прописывают так же, достаточно часто стартовый ява-скрипт параметров в хидере
var GroupID = 'User' или var GroupID = 'Guest'
Очевидно в главном меню либо Регистрация и Войти
- либо
Выход

И т.д.
Ответить с цитированием
  #8 (permalink)  
Старый 10.11.2014, 17:27
Аватар для Shasoft
Профессор
Отправить личное сообщение для Shasoft Посмотреть профиль Найти все сообщения от Shasoft
 
Регистрация: 03.03.2009
Сообщений: 156

Deff,
так весь вопрос когда запрашивать этот элемент активности при заходе на сайт. Т.е. есть ли специальное место для такого в angular или можно где попало это делать.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение стиля родительского элемента при :hover дочернего lanzs Элементы интерфейса 2 16.10.2010 13:28
Проверка наличия логина в БД при регистрации, с помощью ajax storng Общие вопросы Javascript 4 09.04.2010 20:24
Проверка имени пользователя при вводе st1512 AJAX и COMET 1 07.09.2009 09:58
Снятие затемнения с экрана при получении ответа от php срипта с помощью setInterval roma86 jQuery 0 16.08.2009 12:39
Проверка статуса checkbox при xmlhttprequest vvsh AJAX и COMET 3 06.08.2009 15:51