JWT
Criador
Marcos Birro Calixto
Carlos, boa tarde. Isto não deveria funcionar?
As vezes um usuário pode ser um colaborador
//Pega usuário autenticado
$user = auth()->user();
$matricula = $user->matricula;
$colaborador = Colaborador::where('matricula', '=', $matricula);
// all good so return the token
return response()->json(compact('token', 'user', 'matricula', 'colaborador'));
Obrigado,
Criador
Marcos Birro Calixto
<?php
namespace App\Http\Controllers\Auth;
use JWTAuth;
use Tymon\JWTAuth\Exceptions\JWTException;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Models\Colaborador;
class AuthApiController extends Controller
{
public function authenticate(Request $request)
{
// grab credentials from the request
$credentials = $request->only('email', 'password');
try {
// attempt to verify the credentials and create a token for the user
if (! $token = JWTAuth::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);
}
//Pega usuário autenticado
$user = auth()->user();
$matricula = $user->matricula;
$colaborador = Colaborador::where('matricula', '=', $matricula);
// all good so return the token
return response()->json(compact('token', 'user', 'matricula', 'colaborador'));
}
}
Manager
Carlos Ferreira
Olá, Marcos!
Tudo bem?
Essa query está incompleta:
Colaborador::where('matricula', '=', $matricula);
Ela deve retornar um objeto de Colaborador? Deve ficar assim:
Colaborador::where('matricula', '=', $matricula)->first();
Precisa retornar uma collection com vários Colaboradores? Precisa ficar assim:
Colaborador::where('matricula', '=', $matricula)->get();
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!