我使用Devise为我的应用程序执行身份验证,一切正常,除了检测为unauthentication失败的Devise注销消息:
en.devise.failure.unauthenticated:
" You need to sign in or sign up before continuing "
我的意思是我在退出时收到此消息,而不是“已成功退出”消息。
也许我错误地将我的Devise系统个性化了。以下是我所做的人格化:
1 /我使用自己的会话控制器来覆盖默认的Devise会话控制器。我唯一的目标是选择一个特殊的访问(登录/注册)布局:
class SessionsController < Devise::SessionsController
layout 'access'
end
没有更多代码。我只想使用位于views/layouts/access.html.haml
的特殊登录/注册设计进行渲染。
当然,我将其添加到我的routes.rb
文件中:
devise_for :users, :controller => { :sessions => 'sessions' }
2 /我为Devise(法语)选择了另一种语言,因此我下载了devise.fr.yml
并将其粘贴到config/locales/
文件夹中,并在config.i18n.default_locale = :fr
文件中设置config/application.rb
所有其他Devise操作消息都是正确的。只有“退出”有麻烦。有什么想法吗?
提前致谢。
答案 0 :(得分:6)
看起来有一种方法可以在没有继承会话控制器的情况下处理设计的自定义布局。看一下这个文档:
https://github.com/plataformatec/devise/wiki/How-To:-Create-custom-layouts
修改
要在用户退出后将用户重定向到登录页面,请将其添加到应用程序控制器:
def after_sign_out_path_for(resource_or_scope)
sign_ins_path
end
答案 1 :(得分:0)
Devise使用http DELETE请求进行注销请求。请务必使用此链接退出。 <%= link_to "Sign out", destroy_user_session_path, :method => :delete %>