Laravel注册默认加密方法

Laravel注册密码默认加密方式是Hash::make(),如何得知

查看路由,看到注册的 ActionApp\Http\Controllers\Auth\AuthController@register,找到AuthController这个控制器,发现找不到 register 这个方法,但是我们可以看到

use AuthenticatesAndRegistersUsers, ThrottlesLogins;

这里用到了 trait,找到 AuthenticatesAndRegistersUsers,代码如下

<?php

namespace Illuminate\Foundation\Auth;

trait AuthenticatesAndRegistersUsers
{
    use AuthenticatesUsers, RegistersUsers {
        AuthenticatesUsers::redirectPath insteadof RegistersUsers;
        AuthenticatesUsers::getGuard insteadof RegistersUsers;
    }
}

还是用到了trait,进入 RegistersUsers,终于找到了 register 方法

public function register(Request $request)
{
    $validator = $this->validator($request->all());

    if ($validator->fails()) {
        $this->throwValidationException(
            $request, $validator
        );
    }

    Auth::guard($this->getGuard())->login($this->create($request->all()));

    return redirect($this->redirectPath());
}

这里有个 create 方法,就是使用这个创建用户,但这个controller的方法,不是model的方法,接着找到一开始的 AuthController,找到 create 方法

protected function create(array $data)
{
    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => bcrypt($data['password']),
    ]);
}

这里密码用了 bcrypt 方法加密了,bcrypt是 Hash::make() 方法的别名

所以,不难发现,默认注册密码加密使用的是 Hash::make / bcrypt

推荐阅读更多精彩内容