Laravel注册密码默认加密方式是Hash::make(),如何得知
查看路由,看到注册的 Action
是 App\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