2012-02-08 62 views
1

我正在爲我的身份驗證系統和主頁面上使用設備我有登錄屏幕,它會創建用戶並完美地記錄它們。但登錄後,它只是回到索引頁面,而我想它重定向到實際的用戶頁面,即localhost:3000/user/1。我希望此頁面只能由登錄的用戶查看,IE:其他用戶無法查看其他用戶的配置文件。如果有人試圖導航以說localhost:3000/user/2 ...他們將會出現一個登錄屏幕,並且憑證必須匹配該用戶。在登錄後重定向到用戶#顯示頁面時出現問題

我知道這是一個複雜的問題,但任何幫助將是有用的。

回答

2

你對我的描述聽起來像是混合了認證和授權。我說混合,因爲確定您是否允許用戶訪問/ user/1 vs/user/2是授權的用途。

認證是確定的過程「你是你說你是誰」,而授權決定的過程「是你讓你想要去的。」

到目前爲止,您正在使用設計進行驗證,你會想看看抓住另一gem for Authorization(我的偏好是康康舞。)

如果你不想去充分的授權路徑(我會推薦它,但是...)你可以在用戶控制器的before_filter中查看是否current_user_id == id_from_the_url

並登錄後重定向你要使用色器件鉤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

+0

我在想添加到慘慘我的應用程序。我想完整的授權路線只是不知道我會怎麼做。 我仍然不知道如何登錄後單獨顯示頁面重定向。 – RubyNerd 2012-02-08 22:07:31

+0

@RubyNerd在用戶登錄後查看我的重定向答案的最後部分。 – 2012-02-09 00:06:34

+0

非常感謝!它現在完全重定向。 – RubyNerd 2012-02-09 13:55:58

相關問題