gpt4 book ai didi

cordova - 如何使用刷新 token 通过 ADAL for Cordova 请求多个资源

转载 作者:行者123 更新时间:2023-12-04 00:46:26 25 4
gpt4 key购买 nike

我正在关注这个Cordova & ADAL tutorial 。我能够在我的 native 应用程序上成功执行目录搜索。我想扩展应用程序的功能并添加 azure web api 资源并在同一应用程序中使用它。

我使用 VS2015 模板创建了 azure Web api,将其发布到 azure,将其添加为 Azure Active Directory 中的 Web 应用程序,并在 Azure AD 中的“对其他应用程序的权限”部分中授予我的 native 应用程序对其的访问权限。

我现在想扩展示例目录搜索器应用程序,以便在用户无需再次登录的情况下也使用 API。根据我的研究,我发现我可以使用刷新 token 消耗多个资源,但如果不让用户再次登录 Azure AD 以获取 Web api 资源的 token ,我无法弄清楚如何执行此操作。

任何示例或帮助将不胜感激。这是我的jsFiddle让您了解我正在尝试做什么。

// Requests some data from an Azure Web API
requestWebApiData: function (authResult) {
var req = new XMLHttpRequest();
var url = webApiResourceUri + "/api/values";

req.open("GET", url, true);
req.setRequestHeader('Authorization', 'Bearer ' + authResult.accessToken);

req.onload = function (e) {
if (e.target.status >= 200 && e.target.status < 300) {
// This is where I'd like to get my data back from the Azure Web API
console.log(JSON.stringify(e.target.response));
return;
}
app.error('API Data request failed: ' + e.target.response);
};
req.onerror = function (e) {
app.error('API Data request failed: ' + e.error);
}

req.send();
},

最佳答案

我意识到这是一个老问题,但对于其他人来说:

为 Azure 中的客户端应用 (ClientA) 分配所需的委派权限,使用 acquireTokenAsync 进行身份验证,然后通过提供资源名称的 acquireTokenSilentAsync 请求其他资源 (ClientB) ClientB 以及 ClientAs 客户端 ID。

this.authContext.acquireTokenSilentAsync(
clientBResourceUri,
clientAId
);

这将返回 clientB 的 JWT 和刷新 token ,该 token 将存储在 tokenCache 中。如果提示用户需要登录,请确保您已授予 ClientA 应用访问 ClientB 的权限

关于cordova - 如何使用刷新 token 通过 ADAL for Cordova 请求多个资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36069962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com