Xamarin.forms 应用程序服务刷新令牌

Xamarin.forms 应用程序服务刷新令牌,xamarin.forms,azure-web-app-service,azure-mobile-services,Xamarin.forms,Azure Web App Service,Azure Mobile Services,使用MobileServiceClient针对应用程序服务刷新Google令牌是否有任何变化。我曾经能够使用MobileServiceClient在我的Xamarin表单应用程序中刷新Google令牌。现在,登录后,任何刷新的尝试都将被禁止 我的登录代码如下: public class Authentication : IAuthentication { public async Task<MobileServiceUser> LoginAsync(MobileService

使用MobileServiceClient针对应用程序服务刷新Google令牌是否有任何变化。我曾经能够使用MobileServiceClient在我的Xamarin表单应用程序中刷新Google令牌。现在,登录后,任何刷新的尝试都将被禁止

我的登录代码如下:

public class Authentication : IAuthentication
{
    public async Task<MobileServiceUser> LoginAsync(MobileServiceClient mobileClient, MobileServiceAuthenticationProvider provider)
    {
        return await mobileClient.LoginAsync(
            Forms.Context, 
            provider, 
            new Dictionary<string, string>()
            {
                { "access_type", "offline" }
            });
    }
}
即使在成功登录后立即尝试刷新,刷新也会失败。已在上配置令牌存储。对于Microsoft提供程序,刷新工作正常。几个月前它还在工作

Microsoft.Azure.Mobile.Client v3.1.0 Microsoft.Azure.Mobile.Server v2.0.0

直接浏览以返回您已成功登录的报表

直接浏览返回[2.这个词的意思是:这个词的意思是,这个词的意思是,这个词的意思是,这个词的意思是,这个词的意思是,这个单词的意思是,这个单词的意思是,这个单词的意思是,这个单词的意思是,这个单词的意思是,这个单词的意思是,这个单词的意思是:在:2017-01-01-20-15:00:00:21.392828285 z,意思是,这一个代币:该公司的意思是:该公司的意思是:该公司的一名是:该公司的一名是:该公司的一名身份是:该公司的一名是:该公司的一名在该公司的一名董事将在该公司的身份是:该公司的身份是,该公司的身份是,该公司的身份是:该公司的身份是:该公司的身份是该公司的身份是:该公司的身份是:该公司的身份是:该公司的身份是该公司的身份是该公司的身份是该公司的一XQIOJE0ODQ5MJ这是一种新的研究成果,它是一种新的研究成果,它是一种新的研究成果,它是一种新的研究成果,它是一种新的研究,它是一种新的研究,它是一种新的研究,它是一种新的研究,它是一种新的研究,它是一种新的研究,它是一种新的研究,它是一种新的一种新的研究,它是一种新的研究,它是一种新的一种新的新的研究,它是一种新的新的非非非非非非新的研究,一种新的研究,新的非非非新的非非新的非非新的非非新的非非新的非非新的非新的非新的非新的非新的非新的非新的非新的非新的非新的非新的非新的非新的非新的非新的非新的非新的非新的非新的非新的非新的非新的非NVBNR2.2.2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2 HRWKP-2.一个词在一个词在一个词在一个词在一个词在一个词在一个词在一个词在一个词在一个词在一个词在一个词在一个词在一个词在一个词在一个词在一个词在一个词在一个词在一个词在一个词在一个词在一个词在一个词在一个词在一个词上,一个词在一个词在一个词在一个词在一个词上,一个词在一个词在一个词在一个词在一个词在一个词在一个词上,一个词在一个词在一个词在一个词在一个词上,一个词在一个词在一个词在一个词在一个词在一个词在一个词在一个词上,一个词在一个词在一个词在一个词在一个词在一个词在一个词上,在3UVK9WMAORBD7Uyeqmsli_zRWw,提供商名称:google,user_声称:[{typ:iss,val:https://accounts.google.com},{typ:iat,val:1484920821},{typ:exp,val:1484924421},{typ:at_hash,val:XGkwj8ZbeOF_cwjjjxjfw},{typ:aud,val:748073468649-jtm59t7mlcsci89lokbuvseoann28bgq.apps.googleusercontent.com},{typ:http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier,val:101812912381918040847},{typ:email_-verified,val:true},{typ:azp,val:748073468649-jtm59t7mlcsci89lokbuvseoann28bgq.apps.googleusercontent.com},{typ:http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress,val:[my googleemail]},{typ:name,val:[my-name]},{类型:图片,val:https://lh5.googleusercontent.com/-ZH5LACTaA4I/AAAAAAAAAAI/AAAAAAAAAAA/AKB_U8tijfyeCwBOmYLsNc8AFIq3CTbaTw/s96-c/photo.jpg},{典型:http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname,val:[my givenname]},{typ:http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname,val:[我的姓氏]}],用户id:[我的谷歌邮箱]}]

直接浏览返回您没有查看此目录或页面的权限

如果我对microsoftaccount重复这些步骤,那么最后一个刷新步骤会起作用

从Azure请求跟踪: 107.-一般\u冲洗\u响应\u启动 0毫秒

信息的 108.-一般响应标题 标题 内容类型:text/html 服务器:Microsoft IIS/8.0 X-FE-DATA:应用ID:未知状态代码 X-Powered-By:ASP.NET DWAS处理程序名称:BEGIN | 403 | 80 | 0x0 | CONFIG | u SUCCESS | ExtensionlessUrlHandler-Integrated-4.0 |……\volume-4-default\&ApiApp=0 0毫秒

冗长的 109.-一般响应实体缓冲区 缓冲器 您没有查看此目录或页面的权限。 0毫秒

信息的 110.-一般\u冲洗\u响应\u结束 BytesSent 400 错误代码操作已成功完成。
0x0

根据您的详细信息,我注意到当您直接浏览到时,响应不包含刷新令牌。要隔离此问题,您可以参考以下步骤:

1.使用谷歌账号浏览并登录

2.访问以检索我的日志信息,如下所示:

public class Authentication : IAuthentication
{
    public async Task<MobileServiceUser> LoginAsync(MobileServiceClient mobileClient, MobileServiceAuthenticationProvider provider)
    {
        return await mobileClient.LoginAsync(
            Forms.Context, 
            provider, 
            new Dictionary<string, string>()
            {
                { "access_type", "offline" }
            });
    }
}
3.使用浏览器查看是否可以获得带有200 http状态代码的响应


此外,您可以按照这位官员的指示在App Service Mobile Apps中刷新用户登录以解决此问题。此外,您还可以利用此功能在调用MobileService.RefreshUserAsync时捕获详细响应。

结果表明,使用谷歌登录,刷新令牌仅在第一次登录时发布。我移动了我的Azure网站并重新发布OAuth客户端设置,这样我就可以登录了,但令牌存储不再有与我最初的Google登录一起发送的刷新令牌的副本。在这里找到了其余的答案


您能否直接在浏览器中访问移动后端并使用您的帐户登录。然后尝试访问https://{your appname}.azurewebsites.net/.auth/me to
检索您记录的信息。另外,尝试访问https://{your appname}.azurewebsites.net/.auth/refresh以刷新访问令牌。确保在Azure Portal中应用程序服务的“身份验证/授权>高级设置”部分下将令牌存储配置为打开。此外,当您通过代码刷新令牌时,您可以利用此功能捕获详细响应。如果可能,请使用详细的错误消息更新您的问题。请求的信息已添加到问题中。在向Google验证后访问您的/.auth/me时,我确实看到了刷新令牌。我会继续挖掘为什么我在登录谷歌后没有收到azurewebsites回复中的刷新令牌。在使用microsoftaccount进行身份验证后,我确实收到了刷新令牌。