Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用带有Cordova的azure移动应用刷新Google令牌_Cordova_Azure_Azure Mobile Services_Google Login - Fatal编程技术网

使用带有Cordova的azure移动应用刷新Google令牌

使用带有Cordova的azure移动应用刷新Google令牌,cordova,azure,azure-mobile-services,google-login,Cordova,Azure,Azure Mobile Services,Google Login,如何使用带有Cordova的azure移动应用刷新Google令牌 据我所知,我需要使用“access\u type=offline”或“/.auth/refresh”。然而,我不知道如何实现这些下面是我的尝试,返回403–禁止: //var url = AzureDbSvc.client.applicationUrl + '/.auth/me'; /* Note - This Works */ var url = AzureDbSvc.client.applicationUrl + '/.au

如何使用带有Cordova的azure移动应用刷新Google令牌

据我所知,我需要使用“access\u 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
    ...
});
//var url=AzureDbSvc.client.applicationUrl+'/.auth/me';/*注意:这是有效的*/
var url=AzureDbSvc.client.applicationUrl+'/.auth/refresh';
var headers=新的headers();
headers.append('X-ZUMO-AUTH',AzureDbSvc.client.currentUser.mobileServiceAuthenticationToken);
获取(url,{headers:headers})
.then(功能(数据){

console.log(data.status+':'+data.statusText);///调用/.auth/me时是否看到刷新令牌?刷新令牌必须存在,/.auth/refresh API才能正常工作


顺便说一句,您可以通过启用应用程序日志记录来查看此类错误的详细信息。此处有更多详细信息:。请让我们知道这些详细信息,我们可以帮助您了解如何使该场景正常工作。

谢谢Chris!以下内容可以正常工作,但如果您发现任何问题或可以改进,请告诉我

// 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) {...});
//初始谷歌登录
AzureDbSvc.client.loginWithOptions('google',{参数:{access_type:'offline'})
.then(函数(令牌){…});
//刷新令牌请求
var headers=新的headers();
headers.append('X-ZUMO-AUTH',
AzureDbSvc.client.currentUser.mobileServiceAuthenticationToken);
获取(url,{headers:headers})
.then(功能(数据){

console.log(data.status+):“+data.statusText);//谢谢Chris,当使用/.auth/me进行调用时,我应该在哪里看到“刷新令牌”?这应该是client.currentUser中的对象吗?这可能会有所帮助。下面是我的首次登录调用,它成功地将用户登录到…AzureDbSvc.client.login('google')。然后(函数(){var url=AzureDbSvc.client.applicationUrl+'/.auth/me';var headers=new headers();headers.append('X-ZUMO-auth',AzureDbSvc.client.currentUser.mobileServiceAuthenticationToken);fetch(url,{headers:headers})以下是日志信息:收到的请求:GET JWT validation Successed。主题:“sid:####”,颁发者:“”。警告,由sid:###(sid:######)发出的刷新请求失败,因为在令牌存储中找不到刷新令牌。发送响应的信息:403.80 Probiddeni确实收到了某种类型的警告,如,嵌入式Google OAuth刷新令牌开发人员"调用client.loginWithOptions时发出警告。根据上述代码,您知道如何解决此警告吗?请参阅。我不熟悉Cordova,但这对我来说很好。我不确定您为什么会看到您看到的警告。我很好奇Google如何检测此情况。您可能希望在GitHub上的客户端SDK repo中打开一个错误。我有我没有看到任何额外的警告。我相信一切都好。谢谢克里斯。