如何在Laravel中更改auth的密码加密算法。 我看到寄存器控制器中有这个功能:
"body": ["import ${1:{ ${2:module} \\}} from \"${0:library}\";"],
我可以在这里更改bcrypt函数,但是如何使用我将自定义哈希算法进行登录检查密码?
答案 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
你可能会喜欢自己闪亮的哈希。