Я пытаюсь реализовать аутентификацию с использованием Laravel 5.3 и Angular 2 с JWT.Lavarel 5.3 и JWT. Я получаю {"error": "token_not_provided"} для всех маршрутов получения
Auth часть работает, и я в состоянии получить маркер, но я пытаюсь nagivate любых получить маршруты, я получаю сообщение об ошибке
Кодекса
I добавил поставщик и псевдонимы, а также общественности папки поставщиков и генерироваться ключ JWT
в моем ядре я добавил следующее:
'jwt.auth' => \Tymon\JWTAuth\Middleware\GetUserFromToken::class,
'jwt.refresh' => \TymonJWTAuth\Middleware\RefreshToken::class,
и отключили csrfToken.
Это мои маршруты
Route::resource('authenticate', 'AuthController', ['only' => ['index']]);
Route::post('authenticate', '[email protected]');
Route::post('logout', '[email protected]');
И мой AuthController
class AuthController extends Controller
{
public function __construct()
{
// Apply the jwt.auth middleware to all methods in this controller
// except for the authenticate method. We don't want to prevent
// the user from retrieving their token if they don't already have it
$this->middleware('jwt.auth', ['except' => ['authenticate']]);
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
// Get all roles
$users = User::with('role', 'branch')->get();
// Send the response
return response()->json([
'users' => $users
], 200);
}
// Authentification
public function authenticate(Request $request)
{
// Retrieve email
$email = $request->input('email');
$credentials = $request->only('email', 'password');
try {
// 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
return response()->json(['error' => 'could_not_create_token'], 500);
}
// Retrieve user
$user = User::where('email', '=', $email)->first();
// if no errors are encountered we can return a JWT
return response()->json(compact('token'));
// return response()->json([
// 'user' => $user,
// 'token' => compact('token')
// ], 200);
}
// Logout
public function logout(Request $request)
{
$this->validate($request, [
'token' => 'required'
]);
JWTAuth::invalidate($request->input('token'));
}
}
Как я сказал, я мог бы получить маркер после аутентификации, но когда я использую этот маркер, чтобы перейти к некоторому маршруту, как это одна:
Route::resource('authenticate', 'AuthController', ['only' => ['index']]);
Я получаю этот результат:
{
"error": "token_not_provided"
}