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