flarum 修改登录加密方式
时间: 2023-08-11 20:30:12 浏览: 295
RSA加密登录.rar
Flarum默认使用的是Bcrypt加密方式进行用户密码的加密,如果你想修改为其他的加密方式,可以按照以下步骤进行操作:
1. 修改配置文件
在Flarum的根目录下找到config.php文件,添加以下内容:
```php
return [
// ...
'hashers' => [
// ...
'myhasher' => [
'algo' => 'sha256', // 更改为你想要的加密算法
'cost' => 10, // 根据算法不同可选
],
],
];
```
2. 创建自定义加密方式
在Flarum的扩展目录下创建一个新文件夹,比如叫做myhasher,然后在该文件夹下创建一个新的类MyHasher.php,类的代码如下:
```php
namespace MyHasher;
use Illuminate\Contracts\Hashing\Hasher as HasherContract;
class MyHasher implements HasherContract
{
public function make($value, array $options = [])
{
$salt = 'your_salt'; // 自定义的盐值
return hash($options['algo'], $salt . $value);
}
public function check($value, $hashedValue, array $options = [])
{
$salt = 'your_salt';
return hash($options['algo'], $salt . $value) === $hashedValue;
}
public function needsRehash($hashedValue, array $options = [])
{
return false; // 如果需要重新hash,返回true
}
}
```
其中,make()方法用于加密密码,check()方法用于验证密码是否正确,needsRehash()方法用于判断是否需要重新hash。
3. 注册自定义加密方式
在Flarum的扩展目录下的extend.php文件中添加以下代码:
```php
use Illuminate\Events\Dispatcher;
use MyHasher\MyHasher;
return function (Dispatcher $events) {
$events->listen('Illuminate\Auth\Events\Attempting', function ($event) {
$event->credentials['password'] = app(MyHasher::class)->make($event->credentials['password'], [
'algo' => 'sha256', // 根据自己的需求设置
]);
});
$events->listen('Illuminate\Auth\Events\PasswordReset', function ($event) {
// 更多的事件监听可以在这里添加
});
};
$app->singleton(MyHasher::class, function () {
return new MyHasher();
});
$app->register(MyHasher\MyHasherProvider::class);
```
注册完成后,可以在Flarum的管理后台中进行测试。
阅读全文