【问题标题】:match input password with database hash password in laravel 5.1.45将输入密码与 laravel 5.1.45 中的数据库哈希密码匹配
【发布时间】:2019-08-09 11:05:02
【问题描述】:

我的代码有问题,我正在尝试验证来自数据库的输入哈希密码。但一律不和我一起工作。我研究了这些相关问题herehere 以及来源​​laravel。以及给我的错误

(loginController.php 第 19 行中的 ErrorException: 不应静态调用非静态方法 Illuminate\Http\Request::input(),假设 $this 来自不兼容的上下文")

代码在这里

       <?php
    namespace App\Http\Controllers;
    use Illuminate\Foundation\Bus\DispatchesJobs;
    use Illuminate\Http\Request;
    use Illuminate\Routing\Controller as BaseController;
    use Illuminate\Foundation\Validation\ValidatesRequests;
    use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
    use Illuminate\Foundation\Auth\Access\AuthorizesResources;
    use DB;
    use Hash;
    
    class loginController extends BaseController
    {
         public function login(Request $req)
         {
          $username = $req->input('username');
          //$password = $req->Hash::check(input('password'));
          $password['password']= Hash::make(Request::input('password'));
    
          $checkLogin = DB::table('users')->where(['username'=>$username,'password'=>$password])->get();
          if(count($checkLogin)  >0)
          {
           echo "Login SuccessFull<br/>";;
          }
          else
          {
           echo "Login Faield Wrong Data Passed";
          }
         }
    }
    
    ?>

【问题讨论】:

    标签: laravel-5


    【解决方案1】:

    由于错误状态,您正在尝试静态调用非静态方法。

    替换:

    $password['password']= Hash::make(Request::input('password'));
    

    与:

    $password = Hash::make($req->input('password'));
    

    【讨论】:

    • 谢谢先生,我试图将 md5 哈希密码(21232f297a57a5a743894a0e4a801fc3)作为“管理员”传递,但它给了我登录失败错误的数据传递?我错过了什么吗?
    • 在 laravel 中读取 mysql 中的 md5 密码存储有什么建议吗??
    猜你喜欢
    • 1970-01-01
    • 2014-09-27
    • 2015-04-05
    • 2014-08-18
    • 2017-08-05
    • 2012-07-11
    • 2016-03-06
    • 1970-01-01
    • 2016-10-05
    相关资源
    最近更新 更多