Использование JWT Auth вместе с существующей системой аутентификации

Итак, я впервые пытаюсь реализовать аутентификацию в своем API. У меня уже была система аутентификации — Cartalyst Sentinel 2.0, и теперь для добавления аутентификации я использую JWT.
Что я сделал, это:

  • Отправьте токен клиентской стороне во время входа в систему.

  • Заменено существующее промежуточное программное обеспечение для проверки подлинности на новое промежуточное программное обеспечение, которое выполняет как проверку подлинности, так и авторизацию.

Оригинальное промежуточное ПО:

$authenticateForLogin = function ($app, $user) {
return function () use ($app, $user) {
if ( Sentinel::check() === false ) {
$app->response()->status(401);
$app->stop();
}
};
};

Новое промежуточное ПО:

$checkForAuthorization = function ($app, $user) {
return function () use ($app, $user) {
if ( Sentinel::check() === false ) {
$app->response()->status(401);
$app->stop();
} else {

$authHeader = apache_request_headers()["Authorization"];
if ($authHeader) {
$jwt = str_replace("Authorization: Bearer ", "", $authHeader);
if ($jwt) {
try {
$secretKey = base64_decode(getDbConfig()["AUTH_SECRET"]);
$token = JWT::decode($jwt, $secretKey, array('HS512'));
header('Content-type: application/json');
echo json_encode([
'message'    => "Auth Test Successful"]);
} catch (Exception $e) {
//some action
}
} else {
//some action
}
} else {
//some action
}
}
};
};

Так что мои вопросы —

  • Это правильный подход? У меня сложилось впечатление, что
    аутентификация и авторизация — это два отдельных процесса. Есть ли какие-либо недостатки безопасности в этом?

  • Аутентификация Sentinel — это куки, система, основанная на сеансах. Так ли это
    хорошо использовать что-то вроде JWT на вершине? Или я должен сделать
    аутентификация также с использованием JWT (пока не знаю как)?

У меня много сомнений относительно Auth / JWT. Но это на первом месте.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …