Php 在laravel中调用未定义的方法Illumb\Auth\TokenGuard::Test()
我使用的是Laravel6.x和passport软件包。 安装此软件包之前,我在App\User中使用了api\u令牌。 现在我想用passport包对用户进行身份验证,但我遇到了这个错误 调用未定义的方法illumb\Auth\TokenGuard::trunt() 这是我的高尔德:Php 在laravel中调用未定义的方法Illumb\Auth\TokenGuard::Test(),php,laravel,Php,Laravel,我使用的是Laravel6.x和passport软件包。 安装此软件包之前,我在App\User中使用了api\u令牌。 现在我想用passport包对用户进行身份验证,但我遇到了这个错误 调用未定义的方法illumb\Auth\TokenGuard::trunt() 这是我的高尔德: 'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users',
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'passport',
'provider' => 'users',
],
],
这是我的authController:
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;
class AuthController extends Controller
{
private $successStatus=200;
public function login(){
if(Auth::attempt(['email' => request('email'), 'password' => request('password')])){
$user = Auth::user();
$success['token'] = $user->createToken('MyApp')-> accessToken;
return response()->json(['success' => $success], $this-> successStatus);
}
else{
return response()->json(['error'=>'Unauthorised'], 401);
}
}
}
您可能有以下配置:
更改您的auth.php
护照
至代币
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
我把控制器换成这个,问题就解决了
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;
class AuthController extends Controller
{
public function login(Request $request){
$user = User::whereEmail($request->email)->first();
if($user && Hash::check($request->password, $user->password)){
$success['token'] = $user->createToken('tp_@1')-> accessToken;
return response()->json(['success' => $success],200);
}
else{
return response()->json(['status'=>'invalid username or pass !'], 401);
}
}
}
好的,谢谢,但是你确定吗?我想用护照包!使用会话
驱动程序<代码>尝试
方法来自SessionGuard@TsaiKoga请查看此url。但是,passport的guard没有尝试
方法,您可以这样尝试:Auth::guard('api')->尝试(['…');Auth::guard('web')->尝试(['…')代码>。这是。我认为u提供的链接使用的是'defaults'=>['guard'=>'web'…]