Bonjour,

J'utilise GraphQL et Vue.js qui se base sur l'API fait avec Laravel, j'essaie de créer un token d'authentification lorsqu'un utilisateur se connecte pour par la suite pouvoir lui donner accès à l'API.

Ce que je fais

Pour ce faire j'utilise jwt-auth, et j'ai donc une function resolve dans mon LoginQuery.php

// LoginQuery.php
public function resolve($root, $args)
    {
        $credentials = ['email' => $args['email'], 'password' => $args['password']];

        $user = User::where('email', $args['email'])->first();
        if ($user && Hash::check($args['password'], $user->password)) {

            try {
                // attempt to verify the credentials and create a token for the user
                if (! $token = $this->jwt->attempt($credentials)) {
                    return response()->json(['error' => 'invalid_credentials'], 401);
                }
            } catch (JWTException $e) {
                // something went wrong whilst attempting to encode the token
                return response()->json(['error' => 'could_not_create_token'], 500);
            }

            // all good so return the token
             return response()->json(compact('token'));
        }
        abort(403, 'Unauthorized action.');
        return null;
    }

Ce que je veux

J'aimerais qu'il me renvoie le token

Ce que j'obtiens

A ce jour, j'ai une erreur de type:

Undefined property: Illuminate\Http\JsonResponse::$email

1 réponse


T'as pas une erreur moins large ? Genre un numéro de ligne ainsi que la backtrace ? Parce que là, je ne vois pas trop d'où il tire l'information...