Как реализовать авторизацию пользователей?

Разбираюсь в rails и, соответственно, пишу приложение.

В качестве метода авторизации мною выбран протокол oauth2, следовательно у себя я храню минимум информации о пользователе, а именно: имя, идентификаторы провайдеров oauth (к примеру vk.com user id) и аватар, и служебные, такие как user_id и timestamps. Если пользователь уже есть в моей базе, нового пользователя не создается, идет сразу перенаправление на профиль.

Как на уровне бекэнда определять, залогинен ли пользователь? Полагаю, что нужно создать (либо обновить создаваемую по умолчанию) куку с идентификатором сессии для того, чтобы определить есть логин или нет, а также привязать эту сессию к конкретному пользователю и передавать эти данные между запросами. Вот здесь я, во-первых, не уверен прав ли я, а во-вторых, если прав, то как именно это должно быть реализовано? Первое, что приходит в голову, это хранение в базе user_id и session_id, но при каждом запросе клиента лезть в базу сверяться мне кажется пустой тратой ресурсов.
  • Вопрос задан
  • 2724 просмотра
Решения вопроса 1
Если хочется свой велосипед, то вот гайд:
www.sitepoint.com/rails-userpassword-authenticatio...
www.sitepoint.com/rails-userpassword-authenticatio...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@fuCtor
Ruby разработчик
Посмотрите на Omniauth + куча плагинов для различных стратегий.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы