Nachdem ich die Schaltfläche „Anmelden“ auf https://myapp.com/users/sign_in drücken, wird die folgende Fehlermeldung angezeigt:Devise in Rails funktioniert nicht mit HTTPs
ActionController::InvalidAuthenticityToken in Devise::SessionsController#create
unabhängig von den Anmeldeinformationen des vorhandenen Benutzers.
Wenn ich die Taste zum Anmelden unter http://myapp.com/users/sign_in drücke, meldet sich der Benutzer an und die Anwendung scheint reibungslos zu funktionieren, außer dass der Benutzer keine Posts unter HTTPs erstellen kann.
Ich möchte Geräte Authentifizierung unter SSL machen.
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
- Ich habe die
<%= csrf_meta_tags %>
im Kopf - Ich räumte die Cookies in den Browsern
- Ich versuchte
protect_from_forgery with: :null_session
stattprotect_from_forgery with: :exception
in app/controllers/application_controller.rb - Ich versuchte
<%= hidden_field_tag :authenticity_token, form_authenticity_token %>
in derform_for
für neue Sitzung zu setzen - Ich versuchte
devise_for :users, :controllers => { :sessions => "users/sessions" }
in root ich habe versucht,
config.to_prepare { Devise::SessionsController.force_ssl } config.to_prepare { Devise::RegistrationsController.force_ssl } config.to_prepare { Devise::PasswordsController.force_ssl }
in config/Umgebungen/production.rb
hinzufügen
Ihr Problem dadurch gelöst werden kann http://stackoverflow.com/questions/38331496/rails-5-actioncontrollerinvalidauthenticitytoken-error – bunty
@bunty, na ja, nicht wahr –
https://github.com/plataformatec/devise/wiki/How-To:-Use-SSL-(HTTPS) – bunty