当前位置: 首页 > 知识库问答 >
问题:

laravel 8-auth()->Factory(){same refresh()and temprp()}在JWT AuthController中未找到

卫财
2023-03-14

我在Laravel8中使用JWT进行API身份验证。

当我在我的控制器中使用auth()->时,对于factory()或temperp()或任何东西,laravel不知道它,并说:

未定义的方法“尝试”。Intelephense(1013)

我不知道我忘了包括什么

我得AuthController:

namespace App\Http\Controllers\Api\Admin;

use App\Models\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Validator;

class AuthController extends Controller
{
    
    public function __construct() {
        $this->middleware('auth:api', ['except' => ['login', 'register']]);
    }

    
    public function login(Request $request){
        $validator = Validator::make($request->all(), [
            'email' => 'required|email',
            'password' => 'required|string|min:6',
        ]);

        if ($validator->fails()) {
            return response()->json($validator->errors(), 422);
        }

        if (! $token = auth()->attempt($validator->validated())) {
            return response()->json(['error' => 'Unauthorized'], 401);
        }

        return $this->createNewToken($token);
    }
.
.
.
.
.

和我的config/auth.php文件:

return [

    'defaults' => [
        'guard' => 'api',
        'passwords' => 'users',
    ],


    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'api' => [
            'driver' => 'jwt',
            'provider' => 'users',
            'hash' => false,
        ],
    ],


    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\Models\User::class,
        ],
        // Following array is newly added to config
        'otp-user' => [
            'driver' => 'otp-based-auth-provider'
        ],


    'passwords' => [
        'users' => [
            'provider' => 'users',
            'table' => 'password_resets',
            'expire' => 60,
            'throttle' => 60,
        ],
    ],


    'password_timeout' => 10800,

];


共有1个答案

邵俊才
2023-03-14

尝试将防护设置为web,因为您将使用login/pwd

if (! $token = auth('web')->attempt($validator->validated())) {
    return response()->json(['error' => 'Unauthorized'], 401);
}

if (! $token = auth()->guard('web')->attempt($validator->validated())) {
    return response()->json(['error' => 'Unauthorized'], 401);
}

或者手工操作

$user = User::where('email', $request->email)->first();
    if ($user) {
        if (Hash::check($request->password, $user->password)) {
            $token = $user->createToken('Laravel Password Grant Client')->accessToken;
            $response = ['token' => $token];
            return response()->json($response, 200);
        } else {
            return response()->json(['error' => 'Unauthorized'], 401);
        }
    } else {
        return response()->json(['error' => 'Unauthorized'], 401);
    }
 类似资料:
  • 我做了一些事情,现在当我尝试使用标准Laravel Auth实现登录时,我得到以下错误 在User.php第9行异常:类'照明\基金会\Auth\用户'未找到 编辑User.php不存在于和没有修复它

  • 我收到了以下错误消息: 致命错误:未捕获错误:在F:\projects\websites\main\u website\app\Exceptions\Handler中找不到类“Auth”。php:65堆栈跟踪:#0 F:\projects\websites\main\u website\vendor\laravel\framework\src\illighted\Foundation\Http\K

  • 早些时候,在jQuery中编写自定义控件的唯一方法是扩展$.fn命名空间。 这适用于简单的小部件。 假设您构建了更多有状态的小部件,它很快变得很麻烦。 为了帮助构建小部件,Widget Factory在jQuery UI中引入,它删除了通常与管理小部件相关的大部分样板。 jQueryUI Widget Factory只是一个函数($ .widget),它将字符串名称和对象作为参数,并创建一个jQu

  • 我在Rails(3.2.1)中有一个路由问题。 我正在使用omniauth saml进行身份验证(https://github.com/PracticallyGreen/omniauth-saml). 医生说: “用于简化IdP中SAML SP配置的服务提供商元数据可以从http://example.com/auth/saml/metadata.将此URL发送给IdP的管理员。" 当我转到我的服务

  • 我正在使用codeigniter开发一个web应用程序。 我有个问题 当我这样要求控制器的时候 一切都很好,但当我这样要求控制器时 得到了这个错误 我用这个htaccess规则 它工作在服务器上没有错误我有这个问题在wamplocahost.where问题是什么? 我终于找到了: 重写引擎在 重写 /Saffron/ 重写规则^index\. php$-[L] 重写康德%{REQUEST_FILE

  • factory 提供工厂模式支持,将来包括若干类型的 BCCSP 实现。 null:空实现,测试用; software:软件实现; HSM:PKCS11,基于高安全模块的实现。