У меня настроен сайт, поэтому я могу использовать Oauth для единого входа и добавить доступ, чтобы иметь возможность публиковать записи календаря, сделанные на моем сайте, в календаре Outlook пользователя.
Все работает в моей среде разработки, но когда я захожу на свою страницу календаря в работе, она выдает эту ошибку:
https://graph.microsoft.com/v1.0/me/calendarsresulted в ответе
401 Unauthorized`: {"error": {"code": "InvalidAuthenticationToken", "message": "Ошибка проверки маркера доступа."
Я использую тот же токен, который я получаю от oAuth для календарей. Разве это не правильный способ сделать это? И если нет, то как мне найти правильный способ сделать это и почему это будет работать?
вот часть моей страницы oauth
// Get an access token using the authorization code grant
$accessToken = $provider->getAccessToken('authorization_code', [
'code' => $_GET['code']
]);
$_SESSION['refresh_token'] =$accessToken->getRefreshToken();
$graph = new Graph();
$graph->setAccessToken($accessToken);
//the sesion token for calendars expires faster than our token to stay in connect, so if it expires have the user sign back in
try {
$user = $graph->createRequest("GET", "/me/calendars")
->execute();
} catch (Exception $e) { //FAILS HERE
// sessionTimeout(); exit;
var_dump($e);
}
EDIT
бросая токен, я возвращаюсь в JWT. Я вижу, что в процессе разработки мой токен имеет всю информацию, в том числе о том, какие у меня есть области действия. Но в производственном токене отсутствует поле «scp». Я понятия не имею, что я делаю неправильно.
РЕДАКТИРОВАТЬ 2
Я подумал, что, может быть, мне понадобится обновить токен, но это все равно дает мне ту же ошибку.