У меня возникла проблема с серверной частью Symfony при попытке проверить токен JWT с помощью запроса POST к моей конечной точке /api/token. Интерфейс React успешно получает токен, но сервер отвечает статусом 401 Unauthorized. Я проверил токен, и он кажется действительным, но сервер отказывается его аутентифицировать.
Вот что у меня есть:
Код интерфейса :
namespace App\Controller;
use Lexik\Bundle\JWTAuthenticationBundle\Services\JWTTokenManagerInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Core\Exception\AccessDeniedException;
use Lexik\Bundle\JWTAuthenticationBundle\TokenExtractor\AuthorizationHeaderTokenExtractor;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
class TokenController extends AbstractController
{
private $jwtManager;
public function __construct(JWTTokenManagerInterface $jwtManager)
{
$this->jwtManager = $jwtManager;
}
/**
* @Route("/api/token", name="api_token", methods={"POST"})
*/
public function handle(Request $request)
{
$tokenExtractor = new AuthorizationHeaderTokenExtractor('Bearer', 'Authorization');
$token = $tokenExtractor->extract($request);
if (!$token) {
throw new AccessDeniedException('Token not found');
}
try {
$jwtTokenData = $this->jwtManager->parse($token);
} catch (\Exception $e) {
error_log('Token parsing error: ' . $e->getMessage());
throw new AccessDeniedException('Invalid token');
}
$userEmail = $jwtTokenData['email'] ?? null;
if (!$userEmail) {
throw new AccessDeniedException('User not found in token');
}
return $this->json(['message' => 'Token validated']);
}
Текущее поведение:
Когда я вызываю конечную точку /api/token с действительным токеном, я получаю ошибку 401. Несанкционированный ответ.
Токен выглядит правильно сформированным и действительным при декодировании.
Что я сделал Установлено:
Процесс генерации токена возвращает действительный токен.
Токен правильно включается в заголовок авторизации. .
Процессы подписания и проверки используют один и тот же секретный ключ.
Вопросы:
Что может быть причиной ответа 401 «Неавторизованный», несмотря на то, что токен выглядит действительным?
Необходимы ли какие-либо дополнительные проверки, которые мне следует выполнить для устранения этой проблемы? ?
У меня возникла проблема с серверной частью Symfony при попытке проверить токен JWT с помощью запроса POST к моей конечной точке /api/token. Интерфейс React успешно получает токен, но сервер отвечает статусом 401 Unauthorized. Я проверил токен, и он кажется действительным, но сервер отказывается его аутентифицировать. Вот что у меня есть: Код интерфейса : [code]const authenticate = async () => { const token = Cookies.get('authToken'); console.log('Retrieved Token:', token);
if (response.ok) { setIsAuthenticated(true); return true; } else { console.error('Error validating token on server'); logout(); return false; } } catch (error) { console.error('Error during authentication:', error); logout(); return false; } } else { console.error('Token is not present'); return false; } }; [/code] Верхний код: [code]namespace App\Controller;
use Lexik\Bundle\JWTAuthenticationBundle\Services\JWTTokenManagerInterface; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Routing\Annotation\Route; use Symfony\Component\Security\Core\Exception\AccessDeniedException; use Lexik\Bundle\JWTAuthenticationBundle\TokenExtractor\AuthorizationHeaderTokenExtractor; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
class TokenController extends AbstractController { private $jwtManager;
public function __construct(JWTTokenManagerInterface $jwtManager) { $this->jwtManager = $jwtManager; }
/** * @Route("/api/token", name="api_token", methods={"POST"}) */ public function handle(Request $request) { $tokenExtractor = new AuthorizationHeaderTokenExtractor('Bearer', 'Authorization'); $token = $tokenExtractor->extract($request);
if (!$token) { throw new AccessDeniedException('Token not found'); }
if (!$userEmail) { throw new AccessDeniedException('User not found in token'); }
return $this->json(['message' => 'Token validated']); } [/code] Текущее поведение: [list] [*]Когда я вызываю конечную точку /api/token с действительным токеном, я получаю ошибку 401. Несанкционированный ответ. [*]Токен выглядит правильно сформированным и действительным при декодировании. [/list] Что я сделал Установлено: [list] [*]Процесс генерации токена возвращает действительный токен. [*]Токен правильно включается в заголовок авторизации. . [*]Процессы подписания и проверки используют один и тот же секретный ключ. [/list] Вопросы:[list] [*]Что может быть причиной ответа 401 «Неавторизованный», несмотря на то, что токен выглядит действительным? [*]Необходимы ли какие-либо дополнительные проверки, которые мне следует выполнить для устранения этой проблемы? ? [/list]
У меня возникла проблема с серверной частью Symfony при попытке проверить токен JWT с помощью запроса POST к моей конечной точке /api/token. Интерфейс React успешно получает токен, но сервер отвечает статусом 401 Unauthorized. Я проверил токен, и он...
Вот моя проблема: я работаю над проектом Stoplight для конкретного варианта использования и хочу использовать одну из общих моделей в Stoplight, например Model_1. Когда я добавил Model_1, в мой проект YAML была добавлена эта строка:
title: Myapi...
Я строю функцию, которая автоматизирует поиск документов и других файлов SharePoint из веб -API, но мне трудно получить разрешение на выполнение даже базовых операций чтения. Я тестирую это в приложении .NET 6 Console с использованием пакета...