因此,我最近已將新的Office365 Rest API與PHP集成,並使其成功與Contacts API配合工作。oAuth2強制重新登錄[Office365 Rest Api]
一旦身份驗證完成,系統將生成請求url並將用戶重定向,該操作完全正常,但如果您返回到腳本,它將自動再次登錄您的整個過程,因爲Office365不會強制重新授權。
我們的腳本目前允許多個用戶將他們的帳戶與我們的系統同步,但是這隻允許一個用戶在每個瀏覽器會話中執行此操作。
require_once('./src/Office365_Client.php');
$client = new Office365_Client();
$forward_url = $client->createAuthUrl();
if (isset($_GET['code'])) {
$code = $_GET['code'];
$client->setCode($code);
$responseObj = $client->getTokens();
$access_token = $client->getAccessToken();
$refresh_token = $client->getRefreshToken();
$_SESSION['access_token'] = $access_token;
$_SESSION['instance_url'] = $instance_url;
$icustomer = (isset($_SESSION['icustomer'])) ? $_SESSION['icustomer'] : false;
header("location: " . $_SESSION['redirUrl'] . "?crm=office365&access_token=$access_token&refresh_token=$refresh_token");
//die();
//////////////////////////////////////////////////////////
// LOAD CONTACTS
/////////////////////////////////////////////////////////
//$client->getContactsFolders();
///////////////////////////////////////////////////
} else {
header("location: $forward_url");
}
理想的情況下它應該工作如下:
用戶訪問我們的網站 - >我們生成驗證網址和用戶被重定向到登錄頁面Office365(然後,他們將到autheticate如果之前沒有這樣做) - >一旦完成,這將返回到我們的選擇屏幕,他們的代碼準備好創建他們的訪問令牌。如果用戶希望添加不同的Office365帳戶,則他們應該能夠在不使用其他瀏覽器的情況下再次執行該過程。
你找到這個問題的任何妥善的解決辦法? – par 2016-02-06 10:13:50