适用于 Laravel-Jetstream 的解决方案
您可以使用进行身份验证username or email
按照此步骤。
1.确认登录输入字段名称(让名称为identity
)
2. Change config/fortify.php
'username' => 'email' to 'username' => 'identity'
3.在您的中添加了以下身份验证代码app/Providers/FortifyServiceProvider.php
里面的文件boot method
Fortify::authenticateUsing(function (LoginRequest $request) {
$user = User::where('email', $request->identity)
->orWhere('username', $request->identity)->first();
if (
$user &&
\Hash::check($request->password, $user->password)
) {
return $user;
}
});
[注意] 请使用这些类
use Laravel\Fortify\Http\Requests\LoginRequest;
use App\Models\User;
#用于注册用户名
1.添加输入register.blade.php
<div class="mt-4">
<x-jet-label for="username" value="{{ __('User Name') }}" />
<x-jet-input id="username" class="block mt-1 w-full" type="text" name="username" :value="old('username')" required autofocus autocomplete="username" />
</div>
2. Add username
在用户模型中$fillable
数组列表。
3.终于换了app/Actions/Fortify/CreateNewUser.php
file
Validator::make($input, [
..........
'username' => ['required', 'string', 'max:255', 'unique:users'],
.........
])->validate();
return User::create([
.......
'username' => $input['username'],
.....
]);
}
让我们享受认证吧。