laravel 中 Auth::attempt() 返回false

如题 不管怎样都是false
在网上也找过很多 但都找不出原因
代码如下
auth.php

<?php

return [
    'defaults' => [
        'guard' => 'web',
        'passwords' => 'users',
    ],
    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
        'api' => [
            'driver' => 'token',
            'provider' => 'users',
        ],
    ],
    
    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\User::class,
        ],
    ],
    
    'passwords' => [
        'users' => [
            'provider' => 'users',
            'table' => 'password_resets',
            'expire' => 60,
        ],
    ],

];

控制器如下

<?php

namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;

class AuthController extends Controller
{
    public function getRegister(){
       
    }
    public function register(){
      return view('register');
    }
    public function getLogin(){
      return view('auth/login');
    }

    public function postLogin(Request $request){
        $phone = $request->input('phone');
        $password = $request->input('password');
        DB::connection()->enableQueryLog(); // 开启查询日志
        //DB::table('users'); // 要查看的sqls

        $result = Auth::attempt(['phone' => $phone, 'password' => $password]);
        $queries = DB::getQueryLog(); // 获取查询日
        print_r($queries); // 即可查看执行的sql
        dd($result);
        if ($result){
            return view('index', ['error_msg' => '用户名或密码错误']);
        }else{
            return view('auth/login', ['error_msg' => '用户名或密码错误']);
        }
    }
}

然后一直返回false

请问下哪儿出问题了啊?

阅读 5.7k
1 个回答

我看了下源代码. 刚才说错了. 除了password这个字段是固定的, 别的都可以加.
表里面有phone字段, 就可以加phone.

现在这种情况, 你需要看一下sql日志, 再确定你用的这个phone的密码是对的.
检查密码是用 Hash::check() 函数.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题