2017-03-14 11 views
1

azure-mobile-appsをCordovaで使用してGoogleトークンをリフレッシュするにはどうすればよいですか?コルドーバでazure-mobile-appsを使用してGoogleトークンを更新する

私は「access_type = offline」または「/.auth/refresh」を使用する必要があることを理解しています。しかし、私はこれらを実装する方法がわかりません。以下は、は403を返す私の試みである - 禁断:

//var url = AzureDbSvc.client.applicationUrl + '/.auth/me'; /* Note - This Works */ 
var url = AzureDbSvc.client.applicationUrl + '/.auth/refresh'; 

var headers = new Headers(); 
headers.append('X-ZUMO-AUTH', AzureDbSvc.client.currentUser.mobileServiceAuthenticationToken); 
fetch(url, { headers: headers }) 
.then(function (data) { 
    console.log(data.status + ' : ' + data.statusText); //<<-- 403 : Forbidden 
    ... 
}); 

すべてのヘルプは大歓迎です!

答えて

1

おかげさまでクリス!以下の作品が、/.auth/で電話をかけるとき、私は「リフレッシュトークン」を見るべき

// Initial google login 
AzureDbSvc.client.loginWithOptions('google', { parameters: { access_type: 'offline' } }) 
    .then(function (token) {...}); 


// Refresh token request 
var headers = new Headers(); 
headers.append('X-ZUMO-AUTH', 
    AzureDbSvc.client.currentUser.mobileServiceAuthenticationToken); 

fetch(url, { headers: headers }) 
    .then(function (data) { 
     console.log(data.status + ' : ' + data.statusText); //<<== 200 : OK 
     var user_json = data.json(); 
     console.log('user_json:' + user_json); 
     return user_json; 
}).then(function (refreshToken) {...}); 
+0

client.loginWithOptionsを呼び出すときに「**埋め込まれたGoogle OAuthリフレッシュトークン開発者**」のような警告が表示されました。どのように上記のコードを与えられたこの警告を解決する任意のアイデア? https://support.google.com/faqs/answer/7052200?hl=jaをご覧ください。 – Mike

+0

私はコルドバに精通していませんが、そうでなければ私には良く見えます。あなたが見ている警告がなぜ表示されるのかはわかりません。 Googleがこの状態をどのように検出しているのか不思議です。 GitHubのクライアントSDKレポのバグを開くことができます。 –

+0

私は何の警告も見たことがありません。私はすべてが大丈夫だと思う。 Chrisに感謝します。 – Mike

2

/.auth/meを呼び出すと、更新トークンが表示されますか? /.auth/refresh APIが正しく動作するためには、リフレッシュトークンが必要です。

ところで、これらの種類のエラーの詳細は、アプリケーションログを有効にすることで確認できます。詳細はこちら​​。これらの詳細が何であるかをお知らせください。シナリオの作成方法を理解するのに役立ちます。

+0

...あなたはすべての問題を参照してください場合は、それが大幅に改善することが可能なら、私に教えてくださいおかげでクリス、私?これはclient.currentUserのオブジェクトであるべきですか? – Mike

+0

これは役に立ちます。以下は、正常に... AzureDbSvc.client.loginユーザーがログに記録され、私の最初のログインコール( 'グーグル') .then(関数(){ VAR URL = AzureDbSvc.client.applicationUrl +「/.authです/私を '; VARヘッダー=新しいヘッダ(); headers.append(' X-ZUMO-AUTH」、AzureDbSvc.client.currentUser.mobileServiceAuthenticationToken); フェッチ(URL、{ヘッダ:ヘッダ}) – Mike

+0

ここにロギング情報があります: 受け取ったリクエスト:GET https://name.azurewebsites.net/.auth/refresh JWTの検証に成功しました。件名: 'sid:###'、Issuer: 'https://name.azurewebsites。 net/'。 警告:トークンストアにリフレッシュトークンが見つからなかったため、sid:###(SID:###)によって発行されたリフレッシュ要求が失敗しました。 情報送信の応答:403.80 Forbidden – Mike

関連する問題