• Digitaaliset tarvikkeet
  • Palvelin
  • Digitaalinen elämä
  • Tietosuojakäytäntö
  • Ota meihin yhteyttä
  1. Home
  2. Palvelin
  3. c# - Google-todennus palvelinpuolen Blazorissa ei toimi...

c# - Google-todennus palvelinpuolen Blazorissa ei toimi...

Rsdaa 16/01/2022 1712

Yritän lisätä Google-todennuksen Blazor-palvelinsovellukseeni, enkä saa sitä toimimaan localhostillani. Kun napsautan Kirjaudu-painiketta, se vie minut Google-tilin valitsimeen, jossa valitsen sisäänkirjautumiseen käytettävän tilin. Kun olen valinnut tilin, se palaa localhost-kirjautumissivulleni, jossa OnGetCallbackAsync näyttää, että GoogleUser.IsAuthenticated on väärä.

Alla on Startup.cs

nimiavaruus RecruitmentApp{julkinen luokan käynnistys{julkinen käynnistys(IConfiguration configuration){Configuration = configuration;}public IConfiguration Configuration { get; }// Ajonaika kutsuu tätä menetelmää. Käytä tätä menetelmää palveluiden lisäämiseen säilöön.// Lisätietoja sovelluksen määrittämisestä on osoitteessa https://go.microsoft.com/fwlink/?LinkID=398940public void ConfigureServices(IServiceCollection services){services.AddDbContext( options =>optiot.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));//options.UseSqlite("DataSource=app.db"));services.AddDefaultIdentity(options => options.SignIn.Account =falsemed ).AddEntityFrameworkStores();services.AddRazorPages();services.AddServerSideBlazor();services.AddScoped>();services.AddSingleton();services.AddAuthentication().AddGoogle(options =>{Idoptions) "Authentication:Google:ClientId"];options.ClientSecret = Määritys["Authentication:Google:ClientSecret"];options.ClaimActions.MapJsonKey("urn:google:profile", "link");options.ClaimActions.MapJsonKey(" urn:google:image", "picture");});// Lähde: https://github.com/aspnet/Blazor/issues/1554// Lisää HttpContextAccessor// Käytetään määrittämään, onko käyttäjä kirjautunut/ / ja mikä heidän käyttäjänimensä onservices.AddHttpContextAccessor();services.AddScoped();// Vaaditaan HttpClient-tukea varten Blazor Client -projektipalveluissa.AddHttpClient();services.AddScoped();// Siirrä asetukset muille komponenteille(Configurationservices. );}// Ajonaika kutsuu tätä menetelmää. Tällä menetelmällä määrität HTTP-pyynnön pipeline.public void Configure(IApplicationBuilder app, IWebHostEnvironment env){if (env.IsDevelopment()){app.UseDeveloperExceptionPage();app.UseDatabaseErrorPage();}else{app.UseExceptionH /Error");// HSTS-oletusarvo on 30 päivää. Haluat ehkä muuttaa tätä tuotantoskenaarioissa, katso https://aka.ms/aspnetcore-hsts.app.UseHsts();}app.UseHttpsRedirection();app.UseStaticFiles();app.UseRouting();// app.UseCookiePolicy();app.UseAuthentication();app.UseAuthorization();app.UseEndpoints(endpoints =>{endpoints.MapControllers();endpoints.MapBlazorHub();endpoints.MapFallbackToPage("/_Host"); );}}}

Ja tässä on Login.cshtml.csin koodi, jossa ongelma näkyy.

nimitila RecruitmentApp.Pages{[AllowAnonymous]julkinen luokka Kirjautumismalli : Sivumalli{julkinen IActionResult OnGetAsync(string returnUrl = null){string provider = "Google";// Pyydä uudelleenohjausta ulkoiseen kirjautumispalveluun.var authenticationProperties = new AuthenticationUperties ={RedirectationUrl URL ){// Hanki käyttäjän tiedot ulkoisesta kirjautumispalvelusta GoogleUser = this.User.Identities.FirstOrDefault();// -----> !!! ONGELMA GoogleUser.IsAuthenticated palauttaa false!!!!if (GoogleUser.IsAuthenticated){var authProperties = new AuthenticationProperties{IsPersistent = true,RedirectUri = this.Request.Host.Value};wait HttpContext.SignInInFafauthenticeAsynticaulticy. msPrincipal (GoogleUser), authProperties);}return LocalRedirect("/");}}}

Sivustossa console.developers.google.com on määritetty OAuth 2.0 -asiakastunnus, jonka tyyppi on "Web-sovellus", ja ClientID ja Secret on lisätty projektin secrets.json-tiedostoon.

OAuth-asiakastunnusta on muokattu seuraavilla valtuutetuilla uudelleenohjaus-URI:illa:

https://localhost:44319/Loginhttps://localhost:44319/signin-google

En ymmärrä, mikä on vialla, miksi se palauttaa GoogleUser.IsAuthenticated = false google-käyttäjän valinnan jälkeen. Mitään ideoita?


PREV: Isännöi omaa verkkopalvelinta kotona - The Silicon Underground

NEXT: Live WordPress -sivuston siirtäminen paikalliselle palvelimelle

Popular Articles

Hot Articles
Back to Top