Хобрук: Ваш путь к мастерству в программировании

Аутентификация по «коду доступа» с использованием Devise в Rails 3

Я работаю над проектом rails, и мне было рекомендовано использовать Devise для аутентификации и управления сеансом пользователя.

У меня есть два типа пользователей, которым нужна аутентификация пользователя/пароля, и другой тип пользователя, который мне нужно только аутентифицировать с помощью «access_code». Это разные модели без наследования.

Как лучше всего это сделать в Devise? Есть ли способ, чтобы все эти разные типы аутентификации работали бок о бок?

Я рассматривал возможность входа пользователей в систему с использованием имени пользователя или адреса электронной почты, но как мне это сделать, используя только одно поле? Без пароля.


Ответы:


1

Используйте модуль Token Authentication без модуля Database. В Devise Wiki есть пример.

Эти токены, в отличие от тех, которые вы найдете, например, в электронных письмах для восстановления пароля, являются постоянными и хранятся в базе данных. По умолчанию они ведут себя как ключи API службы, что означает, что они не удерживают пользователя в сеансе и должны предоставляться при каждом запросе.

Чтобы они действительно регистрировали пользователей:

# If true, authentication through token does not store user in session and needs
# to be supplied on each request. Useful if you are using the token as API token.
config.stateless_token = false
11.06.2011
  • Разве для этого не требуется настроить существующую систему имени пользователя/пароля? Также это похоже на временную вещь (например, для регистрации). Будет ли это жизнеспособным для постоянного метода аутентификации? 13.06.2011
  • @Peter, только для модуля database_authenticatable требуется пароль для аутентификации. При аутентификации с помощью токена токен подобен ключу API для службы. Участник может войти в систему, указав параметр ?#{token_authentication_key}=access_token либо в GET, либо в POST. 14.06.2011
  • Новые материалы

    Как свинг-трейдеры могут использовать ИИ для больших выигрышей
    По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

    Как построить любой стол
    Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...

    Обзор: Машинное обучение: классификация
    Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

    Разработка расширений Qlik Sense с qExt
    Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..

    React Hooks: основы деструктуризации массива
    Kent C. Dodds написал классный пост о том, как грядущая функция React под названием Hooks работает на капоте. Предстоящий хук React useState основан на деструктурировании массива, давайте..

    Пакеты R, используемые в Tesla
    Добро пожаловать обратно! R — очень популярный язык программирования, используемый множеством компаний, включая Tesla! Итак, давайте взглянем на некоторые пакеты R, которые использует Tesla...

    Сокращение и слияние токенов для эффективных моделей VL: обзор
    Часто в задачах, связанных с компьютерным зрением и НЛП, вычислительно затратная и требующая большого объема памяти обработка становится препятствием для более быстрого логического вывода модели, а..