Laravel 5.8 JWT API仅在用户处于活动状态时才登录用户

Laravel 5.8 JWT API仅在用户处于活动状态时才登录用户,laravel,jwt,laravel-5.7,jwt-auth,laravel-controller,Laravel,Jwt,Laravel 5.7,Jwt Auth,Laravel Controller,我正在尝试实现如果您尝试使用他的凭据登录,那么此时登录系统将检查帐户状态,如果状态为活动,则登录,否则将显示错误通知您的帐户已被阻止 我的数据库列名及其值 列帐户状态 值激活和被阻止 我在控制器中尝试了此功能,但它不起作用 <?php namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; use App\Http\Requests\UserLoginRequest; use App\Ht

我正在尝试实现如果您尝试使用他的凭据登录,那么此时登录系统将检查帐户状态,如果状态为活动,则登录,否则将显示错误通知您的帐户已被阻止

我的数据库列名及其值

列<代码>帐户状态

激活
被阻止

我在控制器中尝试了此功能,但它不起作用

    <?php

namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;
use App\Http\Requests\UserLoginRequest;
use App\Http\Resources\User as UserResource;
use App\User;

class LoginController extends Controller
{

    public function login(UserLoginRequest $request)
    {

        if (!$token = auth()->attempt($request->only(['mobile_number', 'password']))) {
            return response()->json([
                'errors' => [
                    'mobile_number' => ['Sorry we cant find you with those details.'],
                ],
            ], 422);
        };

        return (new UserResource($request->user()))->additional([
            'meta' => [
                'token' => $token,
            ],
        ]);
    }

    public function logout()
    {
        auth()->logout();
    }

}
试试这个:

use Auth;

if (Auth::attempt(['email' => $email, 'password' => $password, 'account_status'=>'ACTIVE'])) {
   // Authentication passed...
   return (new UserResource($request->user()))->additional([
        'meta' => [
             'token' => $token,
           ],
        ]);
    }
   return response()->json([
      'errors' => ["email" => "Something wrong"]
   ]);



你从哪里得到$token?@Sok Chanty我更新了我的问题检查一次“消息”:“语法错误,意外'”,预期为“]”,你必须声明:$email=request('email');在if condition.its显示令牌null}之前,“meta”:{“token”:null}它是中间件还是其他东西?它是控制器