Ruby on rails 在轨道上设计';无法使用HTTPs
按下“登录”按钮后,出现以下错误:Ruby on rails 在轨道上设计';无法使用HTTPs,ruby-on-rails,ruby,ssl,https,devise,Ruby On Rails,Ruby,Ssl,Https,Devise,按下“登录”按钮后,出现以下错误: ActionController::InvalidAuthenticityToken in Devise::SessionsController#create 无论现有用户的凭据如何 如果我按下按钮登录,用户登录,应用程序似乎工作顺利,只是用户也无法在HTTPs下创建帖子 我想让design身份验证在SSL下工作 routes.rb: devise_for :users 应用程序_controller.rb: class ApplicationContro
ActionController::InvalidAuthenticityToken in Devise::SessionsController#create
无论现有用户的凭据如何
如果我按下按钮登录,用户登录,应用程序似乎工作顺利,只是用户也无法在HTTPs下创建帖子
我想让design身份验证在SSL下工作
routes.rb:
devise_for :users
应用程序_controller.rb:
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
end
在config/environments/production.rb中
在控制器中放置一行
skip_before_action :verify_authenticity_token
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
....
end
在routes.rb中
devise_for :users, controllers:
{
sessions: 'users/sessions',
}
因为用户登录时不需要身份验证\u令牌在会话\u控制器中放置一行
skip_before_action :verify_authenticity_token
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
....
end
在routes.rb中
devise_for :users, controllers:
{
sessions: 'users/sessions',
}
由于用户登录时不需要身份验证令牌,因此有一种解决方法,可以在应用程序控制器中禁用对正在运行的签名的CSRF保护
skip_before_action :verify_authenticity_token
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
....
end
class ApplicationController
设置为:
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
skip_before_filter :verify_authenticity_token, if: -> { controller_name == 'sessions' && action_name == 'create' }
...
end
class ApplicationController{controller\u name=='sessions'&&action\u name=='create'}
...
结束
对于应用程序控制器中正在运行的标志,存在禁用CSRF保护的解决方法
skip_before_action :verify_authenticity_token
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
....
end
class ApplicationController
设置为:
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
skip_before_filter :verify_authenticity_token, if: -> { controller_name == 'sessions' && action_name == 'create' }
...
end
class ApplicationController{controller\u name=='sessions'&&action\u name=='create'}
...
结束
可能这将解决您的问题@bunty,好吧,它没有这可能这将解决您的问题@bunty,好吧,它没有这可能,sessions\u controller在哪里?我将尝试在controllers/users/sessions folderError:uninitialized constant users::sessions controller中创建sessions\u controller.rb。我似乎需要您提供更多详细的解释。sessions\u controller由Desive自身应用程序/controllers/users/sessions\u controller.rbMayur生成,sessions\u controller在哪里?我将尝试在controllers/users/sessions folderError:uninitialized constant users::sessions controller中创建sessions\u controller.rb。我似乎需要您提供更多详细的解释。sessions\u controller是由Desive自身应用程序/controllers/users/sessions\u controller.rb生成的