登录后无法重定向到User#show页面

时间:2012-02-08 18:40:18

标签: ruby-on-rails devise

我正在使用设计我的身份验证系统,在主页面上我有登录屏幕,它创建用户并完美地记录它们。但登录后它只是回到索引页面,而我希望它重定向到实际的用户页面,即localhost:3000 / user / 1。我希望此页面只能由登录的用户查看,IE:其他用户无法查看其他用户的个人资料。如果有人试图导航到让我们说localhost:3000 / user / 2 ......他们将会看到一个登录屏幕,并且凭据必须与该用户匹配。

我知道这是一个复杂的问题,但任何帮助都会有用。

1 个答案:

答案 0 :(得分:2)

您对我的描述听起来像是在混合身份验证和授权。我说混音是因为确定你是否允许用户访问/ user / 1 vs / user / 2是授权的目的。

身份验证是确定“你是谁,你是谁”的过程,而授权是确定“你被允许去哪里”的过程。

到目前为止,你正在使用设计进行身份验证,并且你想看看抓住另一个gem for Authorization(我的偏好是cancan。)

如果您不想使用完整的授权路径(我建议不要使用它,但是......),您可以检查用户控制器的before_filter以查看是否{{1} 1}}。

要在登录后重定向,您需要使用与此类似的设计挂钩current_user_id == id_from_the_url

after_sign_in_path_for

来源:https://github.com/plataformatec/devise/wiki/How-To:-Redirect-to-a-specific-page-on-successful-sign-in