ios/android用のCordova Appをビルドしました。このアプリは、Azure Active Directoryに接続されたAzureモバイルサービスを使用します。これはうまくいく。ディレクトリ検索を実行しようとすると、Azureがテナントの資格情報を使用して認証するように求められます。Cordova AzureからAzure Web APIを照会する方法
次のステップ:
私たちは、AzureのSQLデータベースにいくつかのC.R.U.Dを持っているいくつかのAPIを持っています。 APIは正常に動作し、https://mat.azurewebsites.net/api/valuesにナビゲートして(安全でない状態で)データを取得します。
ユーザーがADAL Cordovaライブラリを使用して認証した後(うまく動作し、トークンを受け取った後)、Web APIにGETリクエストを実行してデータを返したいと思います。私は問題を抱えて、それ
我々は、同様の質問がHow do I query Azure Web API from Cordova Azure Authenticated app
ここに掲載しかし、無回答が持っているので、APIへのリクエストを作成するかどうかはわかりません場所です
。
私は複数のapisを呼び出す必要があります.... AngularJs adalでは複数のエンドポイントを渡すことができますが、ここで私たちはどのように渡すことができるか分かりません。
var authority = "https://login.microsoftonline.com/TenantId",
redirectUri = "https://Mobile",
resourceUri = "https://graph.microsoft.com" // I am not sure what should be here,
clientId = "xxxxxxxxxxxxxxx";
var url = "https://xxxxx-api.cloudapp.net/v1/purchaseorders?
$orderby=OrderPlacementDate desc"
req.open("GET", url, true);
req.setRequestHeader('Authorization', 'Bearer ' +
authResult.accessToken);
req.setRequestHeader('XXX.FunctionGroup', 'PurchaseProduct');
req.onload = function (e) {
if (e.target.status >= 200 && e.target.status < 300) {
app.error('Valid');
app.renderData(JSON.parse(e.target.response));
return;
}
app.error('Data request failed error: ' + e.target.response + '.......' + e.target.status);
};
req.onerror = function (e) {
app.error('Data request failed onerror: ' + e);
}
req.send();
@@@@@@ これはあなたがベアラトークンとしてHTTP認証ヘッダーにトークンを渡す必要が認証
authenticate: function (authCompletedCallback) {
app.context = new Microsoft.ADAL.AuthenticationContext(authority);
app.context.tokenCache.readItems().then(function (items) {
if (items.length > 0) {
authority = items[0].authority;
app.context = new Microsoft.ADAL.AuthenticationContext(authority);
}
// Attempt to authorize user silently
app.context.acquireTokenSilentAsync(resourceUri, clientId)
.then(authCompletedCallback, function() {
// We require user cridentials so triggers authentication dialog
app.context.acquireTokenAsync(resourceUri, clientId, redirectUri)
.then(authCompletedCallback, function (err) {
app.error("Failed to authenticate: " + err);
});
});
});
}
あなたのAPI呼び出しでトークンを渡す必要があります。 – singh
例がありますか?質問の説明に少しだけコードを追加しています。 –
var mytoken = "token get"を設定してから、apiurl/endpoint?token = mytokenなど何か他の作業が必要です。これは、検証トークンを取得している場合に検証します。私はあなたがどこかで失敗しているベアラーを割り当てるときに疑念を抱いています。 – singh