如何使用Authlogic验证密码?

时间:2017-06-05 00:17:43

标签: ruby-on-rails authlogic

所以,基本上,我们需要 - 根据用户在AJAX POST中发送的用户/密码,对数据库进行验证。

例如,对于用户" John",密码" HelloStackOverflow1234":

crypted_password: 400$8$4c$e7d64e4751fbde73$e60fea062a3cb3ae78bc8e916a8da78ee8816b8519f4bcad95315a4c60229ac1
password_salt: EW3AY1Btb3KEZb6Z1mBu

如何在RoR4 + AuthLogic中验证密码是否正确?

我现在尝试的是:

user.crypted_password == BCrypt::Password.create(user.password_salt + "HelloStackOverflow", cost: 8)

哪个应该返回true,但事实并非如此。

背景

我们有一个遗产(由以前的开发人员精心编写)后端用Rails 4编写,最近决定构建一个使用新REST API的单页面应用程序。现在我们专注于前端,新的/ api / v2调用将写在Rails的当前代码库中。我们不打算很快改写后端。

我们正在努力使用用户/密码对传统Authlogic生成的哈希值进行身份验证的简单PAP(密码身份验证协议)POST进行身份验证,该哈希值应该在相当长的一段时间内投入使用。

在Google / Stack Overflow上花了几个小时证明是令人沮丧的,因为我们无法在当前的技能组合中找到有用的信息。

1 个答案:

答案 0 :(得分:1)

经过几次尝试后,我自己发现了......

user.valid_password?("HelloStackOverflow")

相关的XKCD:https://xkcd.com/979/