我已经跟随this tutorial创建了自定义哈希,并且我在Laravel 5.3中也实现了Multi-Auth系统(工作正常)但我想知道:
我可以在这些身份验证之间使用多个数据库哈希吗?
这可能吗?
在你问之前:是的,这对我的项目来说是必要的!
答案 0 :(得分:0)
如果您已经有一个有效的多功能身份验证系统和一个使用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){ 返回new \ Illuminate \ Auth \ EloquentUserProvider \ EloquentUserProvider($ hasher,$ config ['model']); });
如果您希望能够调整提供程序功能:
创建一个类似于核心https://github.com/illuminate/auth/blob/master/EloquentUserProvider.php的My\Library\MyUserProvider
并更改您需要的内容
创建My\Library\MyHasher
实施核心合约https://github.com/illuminate/contracts/blob/master/Hashing/Hasher.php
在应用提供商下的AuthServiceProvider启动方法中注册/注入它们:
//将新的哈希实例化或注入$ hasher
Auth :: provider('md5user',function($ app,array $ config)use($ hasher){ 返回new \ My \ Library \ MyUserProvider($ hasher,$ config ['model']); });