Завершено 401 Несанкционированный - Разработать devise_parameter_sanitizer не разрешая никаких значений - PullRequest
0 голосов
/ 25 марта 2020

Я новичок в Rails и застрял здесь ... не могли бы вы помочь мне решить эту проблему.

console

Started POST "/users/sign_in" for ::1 at 2020-03-25 11:46:10 +0530
Processing by Users::SessionsController#create as HTML
  Parameters: {"authenticity_token"=>"seSNKhVVbrFM+XALvQExwMNxI1KY74or3Cy6Y0wYnU7RLjC6uuaM057jKmQ73a0g84qQNnOVREL0RZ6AuarGQA==", "user"=>{"email"=>"yadu@g.com", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Log in"}
================================ 
  User Load (0.3ms)  SELECT "users".* FROM "users" WHERE "users"."email" = ? ORDER BY "users"."id" ASC LIMIT ?  [["email", "yadu@g.com"], ["LIMIT", 1]]
  ↳ app/controllers/users/sessions_controller.rb:16:in `create'
Completed 401 Unauthorized in 248ms (ActiveRecord: 0.3ms | Allocations: 1519)


Started GET "/users/sign_in" for ::1 at 2020-03-25 11:46:10 +0530
Processing by Users::SessionsController#new as HTML
  Rendering devise/sessions/new.html.erb within layouts/application
  Rendered devise/shared/_links.html.erb (Duration: 1.0ms | Allocations: 525)

session_controller.rb


class Users::SessionsController < Devise::SessionsController
  before_action :configure_sign_in_params, only: [:create]


  # GET /resource/sign_in
  def new
    super
  end

  # POST /resource/sign_in
  def create

    logger.debug "================================ #{configure_sign_in_params}"
    super
  end

  # DELETE /resource/sign_out
  def destroy
    super
  end

  private

  # If you have extra params to permit, append them to the sanitizer.
  def configure_sign_in_params
    devise_parameter_sanitizer.permit(:sign_in)  { |u| u.permit(  :email, :password ) }

    # params.require(:user).permit(:email, :password, :remember_me)


  end
end

rout.rb


  devise_for :users, controllers: { omniauth_callbacks: 'users/omniauth',sessions: 'users/sessions'}
  resources :users
  resources :product_categories

config / initializers / devise.rb


# Use this hook to configure devise mailer, warden hooks and so forth.
# Many of these configuration options can be set straight in your model.
Devise.setup do |config|



  config.mailer_sender = 'please-change-me-at-config-initializers-devise@example.com'

  config.case_insensitive_keys = [:email]

  config.strip_whitespace_keys = [:email]
  config.stretches = Rails.env.test? ? 1 : 11

  config.reconfirmable = true

  # Invalidates all the remember me tokens when the user signs out.
  config.expire_all_remember_me_on_sign_out = true




  config.password_length = 6..128


  config.email_regexp = /\A[^@\s]+@[^@\s]+\z/


   config.timeout_in = 30.minutes

  config.reset_password_within = 6.hours
    config.omniauth :facebook, ENV['FACEBOOK_APP_ID'], ENV['FACEBOOK_APP_SECRET'], scope: 'public_profile,email'

  config.omniauth :github, ENV['GITHUB_APP_ID'], ENV['GITHUB_APP_SECRET'], scope: 'user,public_repo'

  config.omniauth :google_oauth2, ENV['GOOGLE_APP_ID'], ENV['GOOGLE_APP_SECRET'], scope: 'userinfo.email,userinfo.profile'

  config.omniauth :twitter, ENV['TWITTER_APP_ID'], ENV['TWITTER_APP_SECRET']
end

Issue

Могу зарегистрировать пользователя успешно, но не может войти в систему, используя этого пользователя. Это показывает 401 неподтвержденных в то время. Похоже, что параметр приходит в методе configuration_sign_in_params, но возвращаемое значение метода configuration_sign_in_params пустое.

Все эти проблемы начинаются с того момента, когда я установил логин с социальными учетными записями ... До этого все было хорошо.

...