OAuth2访问来源错误

时间:2016-11-11 07:47:36

标签: javascript azure cors oauth2

我从BEFORE UPDATE OF fk, status ON table_name服务器请求authorization code。 我的目的是使用我的Microsoft应用程序授权用户。 提到了Document

我尝试接听电话:

OAuth2

但这会产生以下错误:

  

否'访问控制 - 允许 - 来源'标题出现在请求的上   资源。

然后我添加了function httpGet(){ var theUrl = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id="client_id"&response_type=code&redirect_uri="redirect_uri"&response_mode=query&resource=https%3A%2F%2Fservice.contoso.com%2F&state=12345"; var req = new XMLHttpRequest(); req.open('GET', theUrl, true); req.onreadystatechange = function() { if (req.readyState === 4) { if (req.status >= 200 && req.status < 400) { console.log(req.responseText) } else { console.log("error") } } }; req.send(); }

但是它给出了以下错误:

  

对预检请求的响应未通过访问控制检查:否   &#39;访问控制允许来源&#39;标题出现在请求的上   资源。

2 个答案:

答案 0 :(得分:1)

要在Javascript中集成AAD,我们建议您使用azure-activedirectory-library-for-js这是javascript中的库,以便前端轻松集成AAD。

在我们使用ADAL for JS之前,我们需要注意两个选项:

以下是从Microsoft Graph获取访问令牌的代码示例:

<script src="https://secure.aadcdn.microsoftonline-p.com/lib/1.0.10/js/adal.min.js"></script>

<body>
<a href="#" onclick="login();">login</a>
<a href="#" onclick="getToken()">access token</a>
</body>
<script type="text/javascript">
    var configOptions = {
        tenant: "<tenant_id>", // Optional by default, it sends common
        clientId: "<client_id>",
        postLogoutRedirectUri: window.location.origin,
    }
    window.authContext = new AuthenticationContext(configOptions);

    var isCallback = authContext.isCallback(window.location.hash);
    authContext.handleWindowCallback();

    function getToken(){
        authContext.acquireToken("https://graph.microsoft.com",function(error, token){
            console.log(error);
            console.log(token);
        })
    }
    function login(){
        authContext.login();
    }
</script>

答案 1 :(得分:0)

在不使用任何frontend谷歌库的情况下,我提出了解决方案。

window.open("url") 

完成身份验证后,我从code获取url params并发送backend并获得access token, refersh token.......etc,