如果数据库中存在提供的电子邮件,则执行用户身份验证

Perform User Authentication if email provided exists in the database

在 Laravel 中,是否可以仅根据用户电子邮件进行登录 - 无需密码。


我试过了

public function postSignIn(){

      $validator = Validator::make(Input::only('email') , array(
        'email' => 'required',
      ));

      if ($validator->fails()) {
        return Redirect::to('/')->with('error', 'Please fill out your information ')->withErrors($validator)->withInput();
      }

      $email = strtolower(Input::get('email'));

      $auth = Auth::attempt(array('email' => $email ));

      if ($auth) {
        return Redirect::to('/dashboard')->with('success', 'Hi '. Auth::user()->name .'! You have been successfully logged in.');
      }

      else {
        return Redirect::to('/')->with('error', 'Username/Password Wrong')
          ->with('username', $username)
          ->withErrors($validator);
      }

我不断收到:Undefined index: password

我是否需要修改任何类型的 Auth 驱动程序才能使其正常工作?

对此有任何提示/建议将不胜感激!

你可以这样做:

public function postSignIn(){

      $validator = Validator::make(Input::only('email') , array(
        'email' => 'required',
      ));

      if ($validator->fails()) {
        return Redirect::to('/')->with('error', 'Please fill out your information ')->withErrors($validator)->withInput();
      }

      $email = strtolower(Input::get('email'));

      try{
          $user = User::where('email', $email)->firstOrFail();
          Auth::login($user);

          return Redirect::to('/dashboard')->with('success', 'Hi '. Auth::user()->name .'! You have been successfully logged in.');
      }
      catch(ModelNotFoundException $exception){
          return Redirect::to('/')->with('error', 'Username/Password Wrong')
            ->with('username', $username)
            ->withErrors($validator);

      }
}

您可以在 here 中查看有关如何手动登录您的用户的更多信息(您需要向下滚动一点)