0

我已经按照本教程创建了一个自定义哈希,并且我也在 Laravel 5.3 中实现了 Multi-Auth 系统(工作正常),但我想知道:

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

  1. 管理区(我可以默认使用 bycrypt)
  2. 客户区(例如,我可以使用 md5)

那可能吗?

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

4

1 回答 1

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) { return new \Illuminate\Auth\EloquentUserProvider\EloquentUserProvider($hasher, $config['model']); });

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

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

  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) { return new \My\Library\MyUserProvider($hasher, $config['model']); });

于 2016-09-03T10:33:08.717 回答