Ok ...私は現在ASP.NET Core Identity 1.1.2でASP.Net Core 1.1.2を使用しています。ASP.Net Core Identityを使用してログインしたユーザーからGoogleプロフィール写真を取得するにはどうすればよいですか?
Startup.csにおける重要な部分は、次のようになります。
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
//...
app.UseGoogleAuthentication(new GoogleOptions
{
AuthenticationScheme = "Google",
SignInScheme = "Identity.External", // this is the name of the cookie middleware registered by UseIdentity()
ClientId = Configuration["ExternalLoginProviders:Google:ClientId"],
ClientSecret = Configuration["ExternalLoginProviders:Google:ClientSecret"]
});
}
GoogleOptionsはMicrosoft.AspNetCore.Authentication.Google nugetパッケージが付属しています。
AccountController.csでコールバック関数は次のようになります。
だから、[HttpGet]
[AllowAnonymous]
public async Task<IActionResult> ExternalLoginCallback(string returnUrl = null, string remoteError = null)
{
//... SignInManager<User> _signInManager; declared before
ExternalLoginInfo info = await _signInManager.GetExternalLoginInfoAsync();
SignInResult signInResult = await _signInManager.ExternalLoginSignInAsync(info.LoginProvider, info.ProviderKey, isPersistent: false);
string email = info.Principal.FindFirstValue(ClaimTypes.Email);
string firstName = info.Principal.FindFirstValue(ClaimTypes.GivenName);
string lastName = info.Principal.FindFirstValue(ClaimTypes.Surname);
//
}
、すべてはこの時点までは正常に動作します。そしてここで私は立ち往生している。私はaccesstokensとpictureUrlと呼ばれる主張について多くの記事を読んでいます。しかし、プリンシパルにはそれらのどれも含まれていません。
質問は次のとおりです。ExternalLoginCallback関数でプロファイルイメージを一度取得する方法は?
Googleに新しいアプリを登録すると、APIキーが提供されないので、あなたはAPIキーを取得しますか? – CalinCosmin
@CalinCosmin私はそれを答えに加えました。 – Norman
ありがとうございます。それは間違いなく助けてくれました – CalinCosmin