首页 > 解决方案 > 嗨,我们正在使用 Laravel Jwt Auth 说未提供错误令牌

问题描述

这是我的 Htacesss 文件

RewriteEngine On
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

Routes

Route::group(['middleware' => ['jwt.auth1']],function() {
        Route::post('/{profile_type}/balance1/{client_id}','Admin\ProfilesController@balance');
    });

kernel file 

<?php

namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel
{
    /**
     * The application's global HTTP middleware stack.
     *
     * @var array
     */
    protected $middleware = [
        \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
       // \App\Http\Middleware\VerifyCsrfToken::class,
    ];

/**
 * The application's route middleware.
 *
 * @var array
 */
protected $routeMiddleware = [
    'auth' => \App\Http\Middleware\Authenticate::class,
    'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
    'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
    'auth.isSuperAdmin' => \App\Http\Middleware\IsSuperAdminMiddleware::class,
    'auth.isAdmin' => \App\Http\Middleware\IsAdminMiddleware::class,
    'auth.isAuthorise' => \App\Http\Middleware\IsAuthorisedMiddleware::class,
    'auth.isCardholder' => \App\Http\Middleware\IsCardholderMiddleware::class,
    // 'jwt.auth' => \Tymon\JWTAuth\Middleware\GetUserFromToken::class,

    'permissions' => \App\Http\Middleware\CheckPermissionMiddleware::class,
    'isValidCard' => \App\Http\Middleware\IsValidCardMiddleware::class,
    'jwt.auth' => \App\Http\Middleware\JWTUserFromToken::class,
    'jwt.auth1' => \Tymon\JWTAuth\Middleware\GetUserFromToken::class,
    'jwt.refresh' => \Tymon\JWTAuth\Middleware\RefreshToken::class,
    'checkProfileType' => \App\Http\Middleware\CheckProfileTypeMiddleware::class
];
}

GetUserFromtoken

<?php

/*
 * This file is part of jwt-auth.
 *
 * (c) Sean Tymon <tymon148@gmail.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Tymon\JWTAuth\Middleware;

use Tymon\JWTAuth\Exceptions\JWTException;
use Tymon\JWTAuth\Exceptions\TokenExpiredException;

class GetUserFromToken extends BaseMiddleware
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, \Closure $next)
    {
        if (! $token = $this->auth->setRequest($request)->getToken()) {
            return $this->respond('tymon.jwt.absent', 'token_not_provided', 400);
        }

        try {
            $user = $this->auth->authenticate($token);
        } catch (TokenExpiredException $e) {
            return $this->respond('tymon.jwt.expired', 'token_expired', $e->getStatusCode(), [$e]);
        } catch (JWTException $e) {
            return $this->respond('tymon.jwt.invalid', 'token_invalid', $e->getStatusCode(), [$e]);
        }

        if (! $user) {
            return $this->respond('tymon.jwt.user_not_found', 'user_not_found', 404);
        }

        $this->events->fire('tymon.jwt.valid', $user);

        return $next($request);
    }
}

请需要有关如何进行此操作的一些建议。谢谢

标签: phplaravel

解决方案


推荐阅读