Если залогинен с помощью jwt-auth выглядит в контроллере Auth :: user () пуст - PullRequest
0 голосов
/ 20 сентября 2019

В моем приложении Laravel 5.8 / vuejs 2.6 я использую "tymon / jwt-auth": "^ 1.0.0", а мое приложение / Http / Controllers / AuthController.php имеет метод:

public function login(Request $request)
{
    $credentials = $request->only('email', 'password');
    if ($token = $this->guard('api')->attempt($credentials)) {
        return $this->respondWithToken($token);
    }

    return response()->json(['error' => 'Unauthorized'], 401);
}

и я держу токен на стороне клиента.Это работает, но я хочу добавить больше проверок на стороне сервера, когда я сохраняю данные и сделать в методе управления:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Auth;
use DB;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Validator;

use App\Settings;
use App\Http\Traits\funcsTrait;
use App\Forum;
use App\ForumCategory;
use App\ForumThread;
use App\ForumPost;
use Illuminate\Routing\Controller as BaseController;

use App\User;
use App\library\CheckValueType;

use App\Http\Requests\ForumThreadRequest;
use JavaScript;


class ForumController extends BaseController
{
    use funcsTrait;

    public function __construct()
    {
        $this->middleware('auth');
    }


    public function add_new_thread(ForumThreadRequest $request)
    {

        $loggedUser = Auth::user();

        if ( empty($loggedUser->id) ) {
            return response()->json(['error_code'=> 1, 'message'=> "You must be logged!", 'forumThreadRow'=>null],HTTP_RESPONSE_INTERNAL_SERVER_ERROR);
        }
        try {

Но даже если я вошел в систему, это выглядит так в методе add_new_thread$ loggedUser пуст.Должен ли я сделать некоторые дополнительные действия в методе входа в AuthController.php или каким образом?

1 Ответ

0 голосов
/ 23 сентября 2019

Поскольку я использую api guard, решение заключается в использовании:

$user = Auth::guard('api')->user();
...