php - 在 laravel 中调用未定义的方法 Illuminate\Auth\TokenGuard::attempt()
问题描述
我正在使用 Laravel 6.x 和护照包。在安装此软件包之前,我在 App\User 中使用了 api_token。现在我想用护照包对用户进行身份验证,但我遇到了这个错误,
调用未定义的方法 Illuminate\Auth\TokenGuard::attempt()
这是我的守卫:
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'passport',
'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
{
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
passport
至token
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
推荐阅读
- flutter - 如何使用 Appium Flutter Driver 将数据输入到 DropDown
- json - 如何使用 Codable 对象映射来自 Alamofire 的数据的特定字段?
- android - 需要在 Flutter 中制作一个弹出对话框
- reactjs - 在 redux 包装的 Nextjs 中的服务器端渲染页面期间访问 MongoDB
- php - 我在 laravel 中生成的 xml 文件中有一个额外的白色空行
- python - 使用 Python 列出 str 到 int
- database - 带有加密通信的 Jboss7 的 Oracle 数据库 URL 无效
- swagger - 无法在 swagger 文档中添加不记名令牌
- angular - Angular - 主页组件
- java - 从 MongoDB 中删除“_class” - Springboot