Токен Auth0 не является RS256
Я создал приложение Auth0 и затем использовал его в своем проекте ReactJS с помощью модуля @auth0/auth0-react
.
После входа в систему я пытаюсь получить токен доступа с помощью функции getAccessTokenSilently()
. Я заметил, что полученный токен имеет пустую полезную нагрузку, а "alg" - это "dir" вместо "RS256". Как я могу решить эту проблему?
ReactJS Code:
function App() {
const {
loginWithRedirect,
user,
isAuthenticated,
isLoading,
getAccessTokenSilently,
} = useAuth0();
useEffect(async () => {
if (isAuthenticated && !isEmpty(user)) {
let token = await getAccessTokenSilently({
audience: process.env.AUTH0_AUDIENCE,
});
console.log('token', token);
}
}, [isAuthenticated, user]);
if (!isLoading && !isAuthenticated) {
return loginWithRedirect();
}
if (isLoading || !apolloClient) {
return (
<>
<p>Loading...</p>
</>
);
}
return (
<>
<p>APP</p>
</>
);
}
function AppWrapper() {
return (
<Provider store={store}>
<BrowserRouter>
<Auth0Provider
domain={process.env.AUTH0_DOMAIN}
clientId={process.env.AUTH0_CLIENT_ID}
redirectUri={window.location.origin}
audience={process.env.AUTH0_AUDIENCE}
>
<Alerts />
<App />
</Auth0Provider>
</BrowserRouter>
</Provider>
);
}
ReactDOM.render(<AppWrapper />, document.getElementById("root"));
Образец JWT:
eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiaXNzIjoiaHR0cHM6Ly9ldmVyeXRoaW5nLWFwcC1kZXYudXMuYXV0aDAuY29tLyJ9..2g3_tIZTJwJrV9Jd.oiSiOjaiyts4iUCQkv0akvlBjTVdJ5UnCpu0r6sacsAE1Jnz2VEMVr9oTMssfjkMwOdmiWwsWc3t9y014VdvsXsf2U67i-mTWgK93J2vEMh_TxTUICIkSdG4Wp01E4bPiNqv_1qbaOvpIff60qSKB0YYc4o5OdllrTLvn0ZcIIOwSwRdY7aGrWrQc3ix85NfR25NiQZHixeD7qSk6hvJj5YAag9VBfAV4YSeehklsYkOlrdUtLFTypQENBfVwFTBRTJipqtW5vQ6Y1z8uWt0OnL1t3QRrgX7odZMUTqWjQOPbDJkoaiiv17nqJknBbvFydjTgbpq_ubUgcanJ3M.Pj0IqHAeZvUqptPCdu9vOg
Скриншот с jwt.io:
Скриншот настроек приложения Auth0:
Я собираюсь использовать этот маркер доступа при выполнении вызовов API бэкенда. Я использую бэкенд Django и следую этой статье для настройки бэкенда. Согласно фрагменту кода из этой статьи, я должен получить kid
в полезной нагрузке jwt, чего не происходит.