Я пытаюсь использовать ответ-аад-мсал. Все работает хорошо (я могу получить свой токен с Azure), пока не попытаюсь получить его из кэша. Когда я использую метод getAccessToken (), страница перезагружается снова и снова. Кажется, msal не может загрузить токен из кеша. Я попробовал эти решения ( Приложение не получает токен доступа из кэша с использованием MSAL (реагировать-aad-msal) ), но это не сработало. Есть идеи?
Вот мой конфиг:
import jwt from 'jwt-decode'
import { MsalAuthProvider, LoginType } from 'react-aad-msal';
// Msal Configurations
const config: any = {
auth: {
authority: 'https://login.microsoftonline.com/<tenantID>',
clientId: '<frontEndClientID>',
redirectUri: 'http://localhost:3000/signin-oidc'
},
cache: {
cacheLocation: "localStorage",
storeAuthStateInCookie: false
}
};
// Authentication Parameters
const authenticationParameters = {
scopes: [
"https://graph.microsoft.com/User.Read",
"api://<backEndAPIClientID>/Room.ReadWrite"
]
}
// Options
const options = {
loginType: LoginType.Redirect,
tokenRefreshUri: window.location.origin + '/auth.html'
}
export const authProvider = new MsalAuthProvider(config, authenticationParameters, options)
export const authenticateRequest = async (headers: any) => {
// Get the authentication token
const token = await authProvider.getAccessToken();
console.log(jwt(token.accessToken));
return {
headers: {
...headers,
authorization: token.accessToken ? `Bearer ${token.accessToken}` : "",
}
}
};
А вот мой запрос:
export async function getAllRooms(options: object) {
let queryOptions = "?";
Object.entries(options).forEach(
([key, value]) => {
queryOptions = queryOptions.concat(key).concat("=").concat(value).concat("&");
}
);
return axios.get(endpoint + queryOptions, await authenticateRequest({}))
.then(response => {
...
})
.catch(err => {
throw err
})
}