【问题标题】:about Authentication in laravel关于 laravel 中的身份验证
【发布时间】:2014-11-14 18:55:21
【问题描述】:

在 laravel 中进行登录尝试我通常使用类似这样的东西

if (Auth::attempt(array('email' => $usernameinput, 'password' => $password), true))
{
// The user is being remembered...
}

基本上 $usernameinput 会检查我表中的电子邮件。

我正在考虑以不同的方式进行操作,例如我的表格中有电子邮件、用户名和密码。 $usernameinput 可以是我表中的电子邮件或用户名字段。

如何使用如下条件进行 Auth::attempt:

(email==$usernameinput OR username==$usernameinput) AND password == $password

看了几篇文章没看懂,能解释一下吗

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    只需检查两种情况:

    if (Auth::attempt(array('email' => $usernameinput, 'password' => $password), true) ||
        Auth::attempt(array('username' => $usernameinput, 'password' => $password), true))
    {
    // The user is being remembered...
    } 
    

    【讨论】:

      【解决方案2】:

      假设您不允许在用户名中使用@,您可以这样做:

      $data['password] = $password;
      
      if (strpos($usernameinput, '@') === false) {
         $data['username'] = $usernameinput;
      }
      else  {
         $data['email'] = $usernameinput;
      }
      
      
      if Auth::attempt($data, true) {
         // The user is being remembered...
      }
      

      【讨论】:

        猜你喜欢
        • 2021-05-30
        • 1970-01-01
        • 2016-09-01
        • 1970-01-01
        • 2016-05-16
        • 2016-08-03
        • 2019-08-12
        相关资源
        最近更新 更多