使用谷歌登录在wp8应用程序中验证用户
本文关键字:应用程序 验证 用户 wp8 谷歌 登录 | 更新日期: 2023-09-27 17:59:49
我想使用用户谷歌登录凭据对我的wp8应用程序中的用户进行身份验证。这样我就可以获得用户的个人资料信息。我在网上找到了两篇源代码文章。但我无法得到我想要的。
我在此链接中找到的第一个代码。但在获得身份验证代码后,它没有任何代码来获取配置文件。可能是我无法理解。
我在这个链接中找到的第二个代码。它遵循mvvm模式,所以我完全没有理解这段代码。
如果有人正确使用了它,请帮助我。在获得客户端id和客户端机密后,我实际上想要的是在应用程序中做什么来获取用户的个人资料信息。感谢您的帮助。提前谢谢。
这是代码
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
IDictionary<string, string> parameters = this.NavigationContext.QueryString;
string authEndpoint = parameters["authEndpoint"];
string clientId = parameters["clientId"];
string scope = parameters["scope"];
string uri = string.Format("{0}?response_type=code&client_id={1}&redirect_uri={2}&scope={3}",
authEndpoint,
clientId,
"urn:ietf:wg:oauth:2.0:oob",
scope);
webBrowser.Navigate(new Uri(uri, UriKind.Absolute));
}
private async void LayoutRoot_Loaded(object sender, RoutedEventArgs e)
{
if(!App.loggedin)
{
OAuthAuthorization authorization = new OAuthAuthorization(
"https://accounts.google.com/o/oauth2/auth",
"https://accounts.google.com/o/oauth2/token");
TokenPair tokenPair = await authorization.Authorize(
"YOUR_CLIENT_ID",
"CLIENT_SECRET",
new string[] { GoogleScopes.UserinfoEmail });
// Request a new access token using the refresh token (when the access token was expired)
TokenPair refreshTokenPair = await authorization.RefreshAccessToken(
"YOUR_CLIENT_ID",
"CLIENT_SECRET",
tokenPair.RefreshToken);
}
}
获取访问令牌后该怎么办?
这是允许您查看配置文件详细信息的代码:
private void LoadProfile(string access_token)
{
Debug.WriteLine("loading profile");
RestClient client = new RestClient("https://www.googleapis.com");
client.Authenticator = new OAuth2AuthorizationRequestHeaderAuthenticator(access_token);
var request = new RestRequest("/oauth2/v1/userinfo", Method.GET);
client.ExecuteAsync<Profile>(request, ProfileLoaded);
}
private void ProfileLoaded(IRestResponse<Profile> response)
{
Profile = response.Data;
}
只需传入从以前的代码中获得的access_token,数据就应该包含在response.Data
中