Почему декодирование моего JSON ответа не работает в моем Laravel контроллере? - PullRequest
0 голосов
/ 16 января 2020

У меня есть AuthController, где я регистрирую пользователя, а также захожу в систему. Когда пользователь зарегистрирован, я автоматически регистрируюсь, вызывая метод входа в систему. Метод login возвращает объект JSON, который выглядит следующим образом:

"meta": {
    "headers": {},
    "original": {
        "success": true,
        "token": "token is here"
    },
    "exception": null
}

Как извлечь токен из этого объекта JSON, полученного из $this->login($request)? Потому что сейчас $ token возвращает Null.

public function login(Request $request)
{
    $input = $request->only('email', 'password');
    $token = null;

    if (!$token = JWTAuth::attempt($input)) {
        return response()->json([
            'success' => false,
            'message' => 'Invalid Email or Password',
        ], 401);
    }

    return response()->json([
        'success' => true,
        'token' => $token,
    ]);
}

public function register(RegistrationFormRequest $request)
{
    $user = new User();
    $user->user_name = $request->user_name;
    $user->first_name = $request->first_name;
    $user->last_name = $request->last_name;
    $user->email = $request->email;
    $user->password = bcrypt($request->password);
    $user->role_id = 7;
    $user->subscription_plan_id = 1;
    $user->save();

    $token = json_decode($this->login($request), TRUE)['token'];

    return response()->json([
        'success'   =>  true,
        'data'      =>  $user,
        'meta'      =>  $token,
    ], 200);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...