1

我正在使用 Laravel 3.2 创建一个新网站。我的站点将与现有的用户数据库链接,这意味着来自另一个站点的用户将能够使用相同的帐户登录到该站点。

现有站点使用 phpass,所以我想,我需要在 Laravel 站点中使用 phpass 才能使身份验证正常工作。我下载了 Laravel 的 phpass 包,我实现了它只是为了散列密码和检查密码。有没有办法可以将它实现到 Laravel 身份验证类中,所以使用普通的 Laravel 身份验证方法将使用 phpass?

4

1 回答 1

2

您需要实现自己的自定义身份验证驱动程序。这是一个相对轻松的过程,需要一些自定义代码才能正常工作,但幸运的是 L3 很容易扩展。

本质上,您可以扩展现有驱动程序之一(Eloquent 或 Fluent)并简单地重载该attempt方法。看看Eloquent驱动程序。该Hash::check()方法位于第 53 行。因此,基本上,libraries为您的驱动程序创建一个新文件,可能会调用phpass.php并扩展和调整驱动程序。

然后,您使用该Auth::extend()方法注册您的驱动程序。

Auth::extend('phpass', function()
{
    return new Phpass;
}

然后将您的驱动程序设置为application/config/auth.php.

'driver' => 'phpass'

祝你好运。

参考

于 2013-04-25T04:37:05.107 回答