如何获取使用 Google 或 Facebook 登录的用户的数据
How to get the data of the user who is logged in with Google or Facebook
应用程序中是否有函数或方法接受电子邮件地址、使用 google 或 facebook 登录的人的姓名等参数?有的话怎么样。
当我使用 google 登录时,我可以使用以下代码访问它。但我不知道如何通过facebook获取他们的信息。
public class GoogleUserRequest
{
public const string PROVIDER = "google";
[JsonProperty("idToken")]
[Required]
public string IdToken { get; set; }
}
public async Task<UserApp> AuthenticateGoogleUserAsync(GoogleUserRequest request)
{
Payload payload = await ValidateAsync(request.IdToken, new ValidationSettings()
{
Audience = new[] {"GOOGLE CLİENT ID"}
});
return await ExternalLoginUser(GoogleUserRequest.PROVIDER, payload.Subject, payload.Email, payload.GivenName,
payload.FamilyName);
}
使用这些代码,我可以通过有效负载变量保留姓名、电子邮件、电子邮件验证等因素。如果我想用 facebook (Meta) 创建相同的内容,我应该做什么样的编码。
is there a function or method in the application that takes parameters such as email addresses, names of people who log in with google or facebook?
您可以通过SignInManager<TUser>.GetExternalLoginInfoAsync(String)
方法获取当前登录的外部登录信息:
public class HomeController: Controller
{
private readonly SignInManager<IdentityUser> _signInManager;
public ExternalLoginModel(SignInManager<IdentityUser> signInManager)
{
_signInManager = signInManager;
}
public async Task<UserApp> AuthenticateGoogleUserAsync(GoogleUserRequest request)
{
var info = await _signInManager.GetExternalLoginInfoAsync();
var name = info.Principal.Identity.Name;
var email = info.Principal.FindFirst(ClaimTypes.Email).Value;
}
}
应用程序中是否有函数或方法接受电子邮件地址、使用 google 或 facebook 登录的人的姓名等参数?有的话怎么样。
当我使用 google 登录时,我可以使用以下代码访问它。但我不知道如何通过facebook获取他们的信息。
public class GoogleUserRequest
{
public const string PROVIDER = "google";
[JsonProperty("idToken")]
[Required]
public string IdToken { get; set; }
}
public async Task<UserApp> AuthenticateGoogleUserAsync(GoogleUserRequest request)
{
Payload payload = await ValidateAsync(request.IdToken, new ValidationSettings()
{
Audience = new[] {"GOOGLE CLİENT ID"}
});
return await ExternalLoginUser(GoogleUserRequest.PROVIDER, payload.Subject, payload.Email, payload.GivenName,
payload.FamilyName);
}
使用这些代码,我可以通过有效负载变量保留姓名、电子邮件、电子邮件验证等因素。如果我想用 facebook (Meta) 创建相同的内容,我应该做什么样的编码。
is there a function or method in the application that takes parameters such as email addresses, names of people who log in with google or facebook?
您可以通过SignInManager<TUser>.GetExternalLoginInfoAsync(String)
方法获取当前登录的外部登录信息:
public class HomeController: Controller
{
private readonly SignInManager<IdentityUser> _signInManager;
public ExternalLoginModel(SignInManager<IdentityUser> signInManager)
{
_signInManager = signInManager;
}
public async Task<UserApp> AuthenticateGoogleUserAsync(GoogleUserRequest request)
{
var info = await _signInManager.GetExternalLoginInfoAsync();
var name = info.Principal.Identity.Name;
var email = info.Principal.FindFirst(ClaimTypes.Email).Value;
}
}