[英]How I can add a custom error key in Devise custom authentication strategy?
必须进行设计,以使Devise中的授权错误以与RubyOnRails中的ActiveModel :: Errors相同的方式起作用,即,该错误可通过与字段名称相对应的键在哈希中找到。
我想从服务器获得这样的响应{ errors: { user: 'User not found' } }
或{errors: { password: 'Invalid password' } }
,但是我仍然从{ error: 'User not found' }
服务器。
我的自定义策略:
module Devise
module Strategies
class Password < Authenticatable
def authenticate!
resource = password.present? && mapping.to.find_for_database_authentication(authentication_hash)
if resource
if validate(resource){ resource.valid_password?(password) }
remember_me(resource)
resource.after_database_authentication
success!(resource)
else
errors.add(:password, I18n.t('devise.failure.invalid_password'))
fail!(:invalid_password)
end
else
errors.add(:user, I18n.t('devise.failure.user_not_found'))
fail!(:user_not_found)
end
end
end
end
end
答案是修改config / locales / devise.en.yml,但您必须添加设置,默认情况下它们不存在。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.