Возникли проблемы при перенаправлении на страницу пользователя # show после входа - PullRequest
1 голос
/ 08 февраля 2012

Я использую devise для своей системы аутентификации, и на главной странице у меня есть экран входа в систему, и он создает пользователей и отлично их регистрирует.Но после входа в систему он просто возвращается обратно на страницу индекса, тогда как я хочу, чтобы он перенаправлял на страницу реального пользователя, то есть localhost: 3000 / user / 1.Я хочу, чтобы эта страница была видна только пользователю, вошедшему в систему IE: другие пользователи не могут просматривать профили других пользователей.Если кто-то попытается перейти к, скажем, localhost: 3000 / user / 2 ... ему будет представлен экран входа в систему, и учетные данные должны соответствовать этому пользователю.

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

1 Ответ

2 голосов
/ 08 февраля 2012

То, что вы мне описываете, звучит так, как будто вы смешиваете Аутентификацию и Авторизацию.Я говорю о смешивании, потому что определение, разрешаете ли вы пользователю доступ к / user / 1 vs / user / 2, - это то, для чего нужна авторизация.

Аутентификация - это процесс определения того, «кем вы себя говорите», тогда какавторизация - это процесс определения того, «разрешено ли вам идти туда».

Пока вы используете устройство для аутентификации, и вы захотите взглянуть на получение другого камня дляАвторизация (я предпочитаю cancan.)

Если вы не хотите идти по пути полной авторизации (я бы рекомендовал против, но ...), вы можете сделать проверку в before_filter пользовательского контроллера, чтобы увидеть, есть ли current_user_id == id_from_the_url.

И для перенаправления после входа в систему вы захотите использовать ловушку devise after_sign_in_path_for, которая будет выглядеть примерно так:

class ApplicationController < ActionController::Base
    def after_sign_in_path_for(resource)
        return user_path(resource)
    end
end

Источник: https://github.com/plataformatec/devise/wiki/How-To:-Redirect-to-a-specific-page-on-successful-sign-in

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