【发布时间】:2017-08-31 01:47:59
【问题描述】:
我在https://myapp.com/users/sign_in上按下按钮“登录”后,出现以下错误:
ActionController::InvalidAuthenticityToken in Devise::SessionsController#create
无论现有用户的凭据如何。
如果我按下按钮在http://myapp.com/users/sign_in 上登录,用户登录并且应用程序似乎运行顺利,除了用户也不能在 HTTPs 下创建帖子。
我想让设计验证在 SSL 下工作。
routes.rb:
devise_for :users
application_controller.rb:
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
end
user.rb:
class User < ApplicationRecord
devise :database_authenticatable, :recoverable, :rememberable, :registerable, :trackable, :validatable
end
- 我的头上有
<%= csrf_meta_tags %> - 我清除了浏览器中的 cookie
- 我在 app/controllers/application_controller.rb 中尝试了
protect_from_forgery with: :null_session而不是protect_from_forgery with: :exception - 我尝试将
<%= hidden_field_tag :authenticity_token, form_authenticity_token %>放入form_for以进行新会话 - 我在根目录下尝试了
devise_for :users, :controllers => { :sessions => "users/sessions" } -
我尝试添加
config.to_prepare { Devise::SessionsController.force_ssl } config.to_prepare { Devise::RegistrationsController.force_ssl } config.to_prepare { Devise::PasswordsController.force_ssl }在 config/environments/production.rb 中
【问题讨论】:
-
也许这会解决你的问题stackoverflow.com/questions/38331496/…
-
@bunty,好吧,它没有
标签: ruby-on-rails ruby ssl https devise