电子邮件验证的多重身份验证|拉拉韦尔

时间:2020-07-19 10:21:13

标签: php laravel authentication

在laravel注册系统中,有一个功能guard()

Row(
      mainAxisAlignment: MainAxisAlignment.spaceBetween,
      children: <Widget>[
        Text(
          'Home',
          textAlign: TextAlign.center,
          style: TextStyle(
            color: Colors.white,
            fontSize: 50,
            fontWeight: FontWeight.bold,
          ),
        ),
        CircleAvatar(
          radius: 20,
          backgroundImage: NetworkImage(
            'https://source.unsplash.com/50x50/?portrait',
          ),
        ),
      ],
    )

就地

vendor / laravel / ui / auth-backend / RegisterUsers.php

并且寄存器的功能使用此保护功能

protected function guard(){
   return Auth::guard();
}

当我想为另一个警卫建立一个注册系统时,我将覆盖功能警卫功能并像这样使它

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

    event(new Registered($user = $this->create($request->all())));

    $this->guard()->login($user);

    if ($response = $this->registered($request, $user)) {
        return $response;
    }

    return $request->wantsJson()
                ? new Response('', 201)
                : redirect($this->redirectPath());
}

所有这些都很好 但是在电子邮件验证中,guard()函数不存在 它使用 protected function guard(){ return Auth::guard('admin'); } 像那样

 $request->user()

那么,如果我想在这种情况下覆盖守卫怎么办 我本以为会浪费(重新发送)的全部功能,但我认为这不是最好的解决方案 谁能告诉我该怎么做

1 个答案:

答案 0 :(得分:0)

代替覆盖警卫队的功能 我只会用 构造函数中的shouldUse()函数 像那样 auth()->shouldUse('admin'); 然后当我使用request->user()时,它将自动用作管理员保护