【发布时间】:2021-04-14 17:18:48
【问题描述】:
设置后 我想在 api 会话中通过用户名或电子邮件获取用户
我将登录信息传递给参数,但 rails 吐出一个错误
User.find_for_database_authentication(:login => params[:username][:email])
模型上 find_for_database_authentication 的覆盖已经完成。
def self.find_for_database_authentication(warden_conditions)
有人有什么提示吗?
设计
class Api::SessionsController < Devise::SessionsController
respond_to :json
def create
resource = User.find_for_database_authentication(:login => params[:username][:email])
if resource.valid_password?(params[:login][:password])
sign_in(:user, resource)
render :json=> {:auth_token=>resource.authentication_token, :email=>resource.email}, :status => :ok
return
end
invalid_login_attempt
end
end
【问题讨论】:
-
错误是什么?
-
完成 401 未授权
-
你能出示
find_for_database_authentication的代码吗? -
当然,现在问题是代码
-
您的登录凭据是否正确,您能否执行
puts并查看create方法是否获取正确的数据
标签: ruby-on-rails ruby devise