我从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;标题出现在请求的上 资源。
答案 0 :(得分:1)
要在Javascript中集成AAD,我们建议您使用azure-activedirectory-library-for-js这是javascript中的库,以便前端轻松集成AAD。
在我们使用ADAL for JS之前,我们需要注意两个选项:
注意此示例在Internet Explorer中不起作用。请使用其他浏览器,例如Google Chrome。 ADAL.js使用iframe获取除SPA自身后端之外的资源的CORS API令牌。这些iframe请求需要访问浏览器的Cookie才能使用Azure Active Directory进行身份验证。遗憾的是,当应用程序在localhost中运行时,Internet Explorer无法访问Cookie。
oauth2AllowImplicitFlow
。有关详细步骤,请参阅https://crmdynamicsblog.wordpress.com/2016/03/17/response-type-token-is-not-enabled-for-the-application-2/。以下是从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,