Laravel的哈希提供者

时间:2016-09-03 04:46:39

标签: php laravel laravel-5.2 laravel-5.3

我已经跟随this tutorial创建了自定义哈希,并且我在Laravel 5.3中也实现了Multi-Auth系统(工作正常)但我想知道:

我可以在这些身份验证之间使用多个数据库哈希吗?

  1. 管理区域(默认情况下我可以使用bycrypt)
  2. 客户区(我可以使用md5)
  3. 这可能吗?

    在你问之前:是的,这对我的项目来说是必要的!

1 个答案:

答案 0 :(得分:0)

如果您已经有一个有效的多功能身份验证系统和一个使用md5的额外哈希,您可以将其注入自定义身份验证提供程序。以下是您可能需要的步骤。

如果你只想要另一个哈希,你可以尝试使用核心提供者:

  1. 创建My\Library\MyHasher实施核心合约https://github.com/illuminate/contracts/blob/master/Hashing/Hasher.php(如教程中所述)

  2. 在应用程序提供商下的AuthServiceProvider引导方法中注册/注入它,类似:

    //将新的哈希实例化或注入$ hasher

    Auth :: provider('md5user',function($ app,array $ config)use($ hasher){         返回new \ Illuminate \ Auth \ EloquentUserProvider \ EloquentUserProvider($ hasher,$ config ['model']); });

  3. 如果您希望能够调整提供程序功能:

    1. 创建一个类似于核心https://github.com/illuminate/auth/blob/master/EloquentUserProvider.phpMy\Library\MyUserProvider并更改您需要的内容

    2. 创建My\Library\MyHasher实施核心合约https://github.com/illuminate/contracts/blob/master/Hashing/Hasher.php

    3. 在应用提供商下的AuthServiceProvider启动方法中注册/注入它们:

      //将新的哈希实例化或注入$ hasher

      Auth :: provider('md5user',function($ app,array $ config)use($ hasher){         返回new \ My \ Library \ MyUserProvider($ hasher,$ config ['model']); });