我已经按照本教程创建了一个自定义哈希,并且我也在 Laravel 5.3 中实现了 Multi-Auth 系统(工作正常),但我想知道:
我可以在这些身份验证之间使用多个数据库哈希吗?
- 管理区(我可以默认使用 bycrypt)
- 客户区(例如,我可以使用 md5)
那可能吗?
在你问之前:是的,这对我的项目是必要的!
我已经按照本教程创建了一个自定义哈希,并且我也在 Laravel 5.3 中实现了 Multi-Auth 系统(工作正常),但我想知道:
我可以在这些身份验证之间使用多个数据库哈希吗?
那可能吗?
在你问之前:是的,这对我的项目是必要的!
如果您已经有一个工作的多重身份验证系统和一个使用 md5 的额外哈希,您可以将它注入您的自定义身份验证提供程序。以下是您可能需要的可能步骤。
如果您只想要另一个哈希器,您可以尝试使用核心提供程序:
创建一个My\Library\MyHasher
实现核心合约https://github.com/illuminate/contracts/blob/master/Hashing/Hasher.php(如教程中所示)
在应用程序提供程序下的 AuthServiceProvider 引导方法中注册/注入它,如下所示:
// 将新的哈希器实例化或注入为 $hasher
Auth::provider('md5user', function($app, array $config) use ($hasher) { return new \Illuminate\Auth\EloquentUserProvider\EloquentUserProvider($hasher, $config['model']); });
如果您希望能够调整提供程序功能:
创建一个My\Library\MyUserProvider
类似于核心的https://github.com/illuminate/auth/blob/master/EloquentUserProvider.php并更改您需要的内容
创建一个My\Library\MyHasher
实现核心合约https://github.com/illuminate/contracts/blob/master/Hashing/Hasher.php
在应用程序提供程序下的 AuthServiceProvider 引导方法中注册/注入它们:
// 将新的哈希器实例化或注入为 $hasher
Auth::provider('md5user', function($app, array $config) use ($hasher) { return new \My\Library\MyUserProvider($hasher, $config['model']); });