Как пройти аутентификацию с помощью warden.authenticate! - PullRequest
4 голосов
/ 30 декабря 2010

Я хотел бы сделать «вход или зарегистрироваться» на лету при публикации комментария на моем форуме.Я использую Devise / Warden.

Я хочу сделать что-то вроде этого:

user = warden.authenticate!(params[:email], params[:password])
sign_in(:user, user)

Может кто-нибудь дать мне несколько советов, как это сделать?

Спасибо!

Ответы [ 3 ]

1 голос
/ 30 марта 2015

У надзирателя есть set_user вспомогательный метод. Таким образом, вы должны быть в состоянии сделать:

warden.set_user(@user, scope: :user)

Возможно, вы могли бы определить вспомогательный метод контроллера, чтобы войти в систему пользователя и перенаправить его на нужный путь

Более подробная информация доступна по адресу: https://github.com/hassox/warden/wiki/Authenticated-session-data

1 голос
/ 30 декабря 2010

Включено: регистрируется, но не: подтверждается в вашей модели.

0 голосов
/ 25 апреля 2017

Я знаю, что это старая тема, но у меня она работала с

# Inside SessionController < Devise::SessionsController
def create
    self.resource = warden.authenticate!(auth_options)
    sign_in(resource_name, resource)  # this will set cookie
end

Это специфично для устройства, но при проверке метода auth_options в контроллере devise я нашел этот кусок кода здесь :

# File 'app/controllers/devise/sessions_controller.rb', line 45

def auth_options
    { scope: resource_name, recall: "#{controller_path}#new" }
end

Надеюсь, что помог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...