我正在使用devise_token_auth作为身份验证来开发轨道上的红宝石API,每次我从邮递员谷歌chrom扩展程序进行API调用时都会收到此错误
。宝石文件
gem 'devise'
gem 'omniauth'
gem 'devise_token_auth'
gem 'byebug'
gem 'rack-cors', :require => 'rack/cors'
路线.rb
mount_devise_token_auth_for 'User', at: 'auth'
application_controller.rb
include DeviseTokenAuth::Concerns::SetUserByToken
before_action :authenticate_user! , :except=>[:new, :create]
用户型号:
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable,
:confirmable, :omniauthable
include DeviseTokenAuth::Concerns::User
after_initialize :set_provider #, :set_uid
def set_provider
byebug
self[:provider] = "email" if self[:provider].blank?
end
def set_uid
byebug
self[:uid] = self[:email] if self[:uid].blank? && self[:email].present?
end
而且我有点担心为什么User Model
中的这些byebug
不起作用! 这,因为我认为它不会来模型用户
就我而言,这是一个很大的错误。 validate_sign_up_params
错误是由于错误的参数而发生的,在我的情况下,我发送了正确的参数,但包装在用户对象中,如user[name]
、user[email]
等。所以我所要做的就是打开这些包装并拨打如下电话:
localhost:3000/auth?email=abcd@no.co&password=123456789&password_confirmation=123456789
尝试将项目与此存储库进行比较。我们基本上设置了相同的环境。特别是,请查看此文件以了解身份验证请求的工作原理。