我已经使用Xamarin.Auth实现了OAuth 2身份验证。
Authenticator = new OAuth2Authenticator(
clientId: OAuthConstants.CLIENT_ID,
clientSecret: null,
scope: OAuthConstants.SCOPE,
authorizeUrl: new Uri(OAuthConstants.AUTHORIZE_URL),
accessTokenUrl: new Uri(OAuthConstants.ACCESS_TOKEN_URL),
redirectUrl: new Uri(OAuthConstants.REDIRECT_URL),
getUsernameAsync: null,
isUsingNativeUI: true);
用户可以使用OAuth进行注册,也可以使用本地帐户并将其链接到Google帐户。这两种情况都可以正常工作。
在链接帐户或注册时,提示用户授予作用域权限(配置文件电子邮件)。然后,我取回访问令牌并使用帐户存储来存储帐户。
由于此链接到了google,因此我将google用户ID和刷新令牌存储在数据库中。
想法是,如果卸载了该应用程序,然后用户重新安装了该应用程序,我希望他们能够再次使用Google oAuth登录。
这行得通-因为我可以使用Google用户ID找到用户,但是甚至认为使用OAuth2Authenticator请求访问令牌时应用程序ID并未更改。它一直要求用户授予权限-他们已经授予了该应用的权限。
我正在向演示者演示如下:
var presenter = new Xamarin.Auth.Presenters.OAuthLoginPresenter();
CustomTabsConfiguration.CustomTabsClosingMessage = null;
presenter.Login(Authenticator);
我会认为,由于用户允许应用访问,因此不会提示他们再次授予权限。
有没有一种提示他们登录的方法,而不仅仅是每次都被要求获得权限?
谢谢