Laravel自定义认证方式

基础知识

  1. 哈希加密解密(Laravel默认的加密方式是哈希,具体教程看官方文档)
  2. 模型操作
  3. 表单认证

具体实现

表结构

表结构

注册自定义

  • 页面用的还是默认的页面,所以还是要执行php artisan make:auth
  • 将users的迁移表修改一下,添加user_id字段
  • 在注册的视图中添加一个user_id输入框
  • 修改RegisterController
    protected function validator(array $data)
    {
        return Validator::make($data, [
            'name' => ['required', 'string', 'max:255'],
            //添加user_id
            'user_id'=>['required','integer'],
            'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
            'password' => ['required', 'string', 'min:8', 'confirmed'],
        ]);
    }

    protected function create(array $data)
    {
        return User::create([
            'name' => $data['name'],
            //将user_id写入数据库中
            'user_id'=>$data['user_id'],
            'email' => $data['email'],
            'password' => Hash::make($data['password']),
        ]);
    }
  • 修改User.php
    protected $fillable = [
        'name', 'user_id','email', 'password',
    ];

登录自定义

  • 将登陆时使用的Email改为user id
  • 修改LoginController
    public function login(Request $request){
        //获取表单输入
        $user_id = $request->input('user_id');
        $password = $request->input('password');
        //获取用户信息
        $user = User::where('user_id',$user_id)->first();
        //数据库中取的密码
        $pass = $user->password;
        $str = Hash::make($pass);
        if (Hash::check($password, $pass)) {
            Auth::login($user);
            return redirect('/home');
        }else{
            return redirect('/login');
        }
    }

猜你喜欢

转载自blog.csdn.net/qq_42094066/article/details/91346547