我目前有一個我的應用程序的問題。刷新從YouTube的Office365授權令牌
問題是,用戶可以在輸入任何數據前長時間保持頁面打開,所以偶爾當他們輸入數據並點擊提交按鈕時,他們被重定向到o365進行身份驗證,因此會丟失輸入數據。
我有適用於應用程序的所有標準身份驗證。然而,我相信爲了做到這一點,我需要在點擊提交按鈕時在javascript中獲得刷新令牌,並將此令牌發送給api方法以授予訪問權限。
這是可能的,是否有人知道如何去做?
這是一個MVC ASP.NET應用程序,使用微軟Azure AD的Owin O365安全性。
我不確定哪些信息或代碼片段在這裏是相關的,所以如果有什麼我可以提供的,請詢問。
我發現有多個獲取令牌等與角度的例子,但是,這不是一個SPA和不使用角。
很多預先感謝。
UPDATE
我試圖檢索使用下面的代碼使用ADAL JS令牌,但它似乎沒有認識到AuthorizationContext(配置)電話:
<script src="https://secure.aadcdn.microsoftonline-p.com/lib/1.0.0/js/adal.min.js"></script>
$('#btnSubmit').on('click', function (e) {
e.preventDefault();
CheckUserAuthorised();
});
function CheckUserAuthorised() {
window.config = {
instance: 'https://login.microsoftonline.com/',
tenant: '##################',
clientId: '###################',
postLogoutRedirectUri: window.location.origin,
cacheLocation: 'localStorage'
};
var authContext = new AuthorizationContext(config); //THIS LINE FAILS
var user = authContext.getCachedUser();
if (!user) {
alert("User Not Authorised");
authContext.login();
}
else {
alert('User Authorized');
}
}
這提供了以下錯誤在控制檯:
'AuthorizationContext' is undefined
UPDATE
我沒有通過未定義的錯誤。這是因爲我打電話給AuthorizationContext
而不是AuthenticationContext
。小學生錯誤。但是現在,無論何時我檢查上下文的用戶屬性,它始終爲空。我不知道解決這個問題的方法是在頁面加載時初始化上下文。
您的代碼中存在拼寫錯誤。嘗試將AuthorisationContext更改爲AuthorizationContext。 – n0m4d
好點,謝謝你,但我仍然得到錯誤:'AuthorizationContext是未定義的' – DaRoGa
你從哪裏得到這個代碼示例?另一件事:不要傳遞給AuthorizationContext這個配置,而是將其作爲window.config傳遞,因爲配置是在窗口對象中定義的。 – n0m4d