Laravel 中的哈希提供程序
Hash Provider in Laravel
我已经按照 this tutorial 创建了一个自定义哈希,并且我也在 Laravel 5.3 中实现了 Multi-Auth 系统(工作正常)但我想知道:
我可以在这些身份验证之间使用多个数据库哈希吗?
- 管理区(我可以默认使用bycrypt)
- 客户专区(我可以用md5举例)
这可能吗?
在你问之前:是的,这对我的项目来说是必需的!
如果您已经有一个工作的多重身份验证系统和一个使用 md5 的额外哈希器,您可以将它注入您的自定义身份验证提供程序。以下是您可能需要的可能步骤。
如果您只想要另一个哈希器,您可以尝试使用核心提供程序:
创建一个 My\Library\MyHasher
实施核心合约 https://github.com/illuminate/contracts/blob/master/Hashing/Hasher.php(如教程中所述)
在您的应用程序提供程序下的 AuthServiceProvider 启动方法中注册/注入它,类似这样:
// 实例化或注入新的哈希器作为 $hasher
Auth::provider('md5user', function($app, array $config) 使用 ($hasher) {
return 新 \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) 使用 ($hasher) {
return 新 \My\Library\MyUserProvider($hasher, $config['model']);
});
我已经按照 this tutorial 创建了一个自定义哈希,并且我也在 Laravel 5.3 中实现了 Multi-Auth 系统(工作正常)但我想知道:
我可以在这些身份验证之间使用多个数据库哈希吗?
- 管理区(我可以默认使用bycrypt)
- 客户专区(我可以用md5举例)
这可能吗?
在你问之前:是的,这对我的项目来说是必需的!
如果您已经有一个工作的多重身份验证系统和一个使用 md5 的额外哈希器,您可以将它注入您的自定义身份验证提供程序。以下是您可能需要的可能步骤。
如果您只想要另一个哈希器,您可以尝试使用核心提供程序:
创建一个
My\Library\MyHasher
实施核心合约 https://github.com/illuminate/contracts/blob/master/Hashing/Hasher.php(如教程中所述)在您的应用程序提供程序下的 AuthServiceProvider 启动方法中注册/注入它,类似这样:
// 实例化或注入新的哈希器作为 $hasher
Auth::provider('md5user', function($app, array $config) 使用 ($hasher) { return 新 \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) 使用 ($hasher) { return 新 \My\Library\MyUserProvider($hasher, $config['model']); });