Laravel 5.4更改密码加密方法

时间:2017-08-27 10:17:32

标签: php laravel laravel-5.4

如何在Laravel中更改auth的密码加密算法。 我看到寄存器控制器中有这个功能:

"body": ["import ${1:{ ${2:module} \\}} from \"${0:library}\";"],

我可以在这里更改bcrypt函数,但是如何使用我将自定义哈希算法进行登录检查密码?

1 个答案:

答案 0 :(得分:1)

您需要创建自己的HashServiceProvider(其服务提供商),因此请使用artisan创建您自己的(您可以将其称为原始版本)

$ artisan make:provider HashServiceProvider

现在复制大部分股票HashServiceProvider(股票可以在\Illuminate\Hashing\HashServiceProvider.php中找到)并修复名称空间和导入。现在转到 config / app.php 并找到HashServiceProvider并为您自己的服务提供商更改库存HashServiceProvider,因为您完全按照我的指导行事,您应该注意到没有任何改变。

现在您必须创建(实现)自己的散列函数。您有两种选择:

一个。扩展原始的BcryptHasher

<?php
namespace Your\Namespaced\Hasher;
use Illuminate\Hashing\BcryptHasher as OriginalHasher;
class BcryptHasher extends OriginalHasher
{...} // and change what you need

此方法的示例可以在Kyslik/django-bcrypt存储库

中找到

B中。创建新类并实现Hasher interface

<?php
namespace Your\Namespaced\Hasher;
use Illuminate\Contracts\Hashing\Hasher;
class MyHasher implements Hasher {...} // IDE should scream at you with methods you need to implement

最后在您的服务提供者(HashServiceProvider)中更改register()方法以返回哈希的实现。

做一个$ composer dump-autoload你可能会喜欢自己闪亮的哈希。