从Javascript获取Azure oauth2令牌始终无法正常工作

时间:2019-03-01 10:07:32

标签: azure oauth-2.0 azure-active-directory azure-web-sites

我正试图通过调用mvc操作方法来访问Web api方法来使用Java脚本获取aouth2访问令牌。

在这里我每30秒检查一次令牌是否过期(如果尝试获取新令牌)。如果我删除下面的代码行,这里的问题是有效的

 if (Inittoken != null && Inittoken.accessToken.expires_on < currentdatetime)

如果我输入条件,则无法获取令牌。由于收到对预检请求的响应未通过访问控制检查,我得到了CORS错误:上没有'Access-Control-Allow-Origin'标头请求的资源,错误为302。我不明白的是,如果我尝试每30秒连续获取令牌(即使它没有过期),为什么它会起作用,而当我尝试仅获取令牌过期时,为什么它不起作用。我知道令牌将在一个小时后过期

 setInterval(
         function () {
             var currentdatetime = new Date().getTime() / 1000;         
             if (Inittoken != null && Inittoken.accessToken.expires_on < currentdatetime) {

                 $.ajax({
                url: '/Common/GetAccessTokenJS',
                success: function (data) {
                    resonsedata = data;
                    settings.accessToken = JSON.parse(resonsedata);
                },
                error: function (req, status, errorObj) {
                    console.log("failed to get access token");
                    console.log(errorObj);
                }
            });          
            }

         }, 30000);

https://login.microsoftonline.com/tenantname/oauth2/token

0 个答案:

没有答案