我目前有一个我的应用程序的问题。刷新从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