【发布时间】:2015-02-11 08:11:58
【问题描述】:
我正在使用 Devise 作为身份验证系统制作基于 AJAX 的应用程序。我遇到的问题是,当我使用 AJAX 使用 Devise 登录时,当视图更改并出现注销按钮时,单击时会显示此错误:
ActionController::InvalidAuthenticityToken in Customization::SessionsController#destroy
ActionController::InvalidAuthenticityToken
Parameters:
{"_method"=>"delete",
"authenticity_token"=>"hitX5aEjoTzi3tKP3y76+c60MuJumv5mwNEjyGUOQiY="}
这里你有我的设计会话控制器的登录方法(我不得不改变一些事情来实现 AJAX):
# POST /resource/sign_in
def create
self.resource = warden.authenticate!(auth_options)
sign_in(resource_name, resource)
yield resource if block_given?
if user_signed_in?
flash[:logged] = "Zalogowany"
respond_to do |format|
format.html { redirect_to root_path }
format.js { render "sign_in_success.js.erb" }
end
end
end
sign_in_success.js.erb 文件:
$("body").empty();
$("body").append("<%= j(render template: 'layouts/user') %>");
“布局/用户”内的按钮:
a href="#{destroy_user_session_path}" data-method="delete" rel="nofollow"
button.btn.btn-primary.m-r-20 type="button"
b Log Out
如何使用 AJAX 发送 Authenticity Token?我可以通过渲染中的 locals 选项将其发送给“布局/用户”并以这种方式使用吗?
【问题讨论】:
标签: ajax ruby-on-rails-4 devise