Mri*_*yay 7 ruby-on-rails devise
我正在使用devise进行rails api身份验证,但无法正确理解devise正在为我们做什么.
我有会话控制器与创建方法签署用户.
def create
user_email = params[:session][:email]
user_password = params[:session][:password]
user = user_email.present? && User.find_by(email: user_email)
if user.valid_password?(user_password)
sign_in user, store: false /* exactly this line */
render json: user, status: 200, location: [:api, user]
else
render json: { errors: "Invalid email or password" }, status: 422
end
end
Run Code Online (Sandbox Code Playgroud)
在rubydoc上,它的描述是这样写的
登录已经过身份验证的用户.注册后,此助手可用于记录用户.给sign_in的所有选项都传递给warden中的set_user方法.
但我不清楚.谢谢.
sign_in用于当您已经拥有一个User您自己创建或加载/验证的对象,因此希望作为经过验证的用户存储在会话中,用于当前和即将到来的请求的其余部分。
如果您查看默认设计SessionsController的源代码,您会发现它也用于sign_in登录用户。
设计是在层监狱长,所以你可能想看看它的文档,了解这一级别的功能。正如您引用的设计文档所述,sign_in只需set_user从监狱长调用该方法。Devise 在上面增加了很多便利,比如使用多个范围和各种管理员身份验证策略的能力。
| 归档时间: |
|
| 查看次数: |
4298 次 |
| 最近记录: |