Laravel 5 Войти без базы данных и дать ответ JWT - PullRequest
0 голосов
/ 22 октября 2018

Нужна помощь, как получить токен JWT после входа в систему без базы данных. Я пытаюсь использовать tymondesigns / jwt-auth, но при этом возникает ошибка «Вызов функции-члена send () on null».

Вот мой код в AuthController (функция построения и входа в систему)

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


public function login()
{
    $credentials = request(['email', 'password']);

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

    return $this->respondWithToken($token);
}

Я использую пользовательское промежуточное ПО:

namespace App\Http\Middleware;

use Closure;
use Session;
 use Illuminate\Http\Request;
class CustomMiddleware
{
protected $loginPath = 'login';

public function handle($request, Closure $next) 
{
    if (!empty(session('login')))
    {
        $logged_in = $request->session()->put('logged_in');

        if (!$logged_in) 
        {
            return redirect()->guest('login')->with('flag','1');
        }
        return $next($request);
    }
}

А вот мои маршруты в API.php

 Route::group([

'middleware' => 'custom',
'prefix' => 'auth'

 ], function ($router) {

Route::post('login', 'AuthController@login');
Route::post('logout', 'AuthController@logout');
Route::post('refresh', 'AuthController@refresh');
Route::post('me', 'AuthController@me');

});

в kernel.php я положил:

'custom' => \App\Http\Middleware\CustomMiddleware::class,

1 Ответ

0 голосов
/ 22 октября 2018

После установки JWT согласно документации вы должны использовать

$token = JWTAuth::attempt($credentials)

вместо $token = auth()->attempt($credentials)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...