Login.cshtml @page @model BlazorGmail.Pages.Identity.LoginModel @{ } Login.cshtml.cs using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Authentication.Cookies; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using System.Security.Claims; namespace BlazorGmail.Pages.Identity { [AllowAnonymous] public class LoginModel : PageModel { public IActionResult OnGetAsync(string returnUrl = null) { string provider = "Google"; // Request a redirect to the external login provider. var authenticationProperties = new AuthenticationProperties { RedirectUri = Url.Page("./Login", pageHandler: "Callback", values: new { returnUrl }), }; return new ChallengeResult(provider, authenticationProperties); } public async Task OnGetCallbackAsync( string returnUrl = null, string remoteError = null) { // Get the information about the user from the external login provider var GoogleUser = this.User.Identities.FirstOrDefault(); if (GoogleUser.IsAuthenticated) { var authProperties = new AuthenticationProperties { IsPersistent = true, RedirectUri = this.Request.Host.Value }; await HttpContext.SignInAsync( CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(GoogleUser), authProperties); } return LocalRedirect("/"); } } }