Rakenna ASP.NET Core -autentikointi Logto:lla
Opi rakentamaan käyttäjän autentikointiprosessi ASP.NET Core:ssa integroimalla Logto SDK.
Opi rakentamaan käyttäjän autentikointiprosessi ASP.NET Core:ssa integroimalla Logto SDK.
Tässä ohjeessa näytämme, kuinka voit rakentaa käyttäjän autentikointiprosessin ASP.NET Core:ssa integroimalla Logto SDK:n. Ohjaus käyttää C#:aa ohjelmointikielenä.
Ennen kuin aloitat, varmista, että sinulla on seuraavat:
Aloittaaksesi, luo Logto-sovellus "Perinteinen web" -tyypillä. Seuraa näitä vaiheita luodaksesi Logto-sovelluksen:
Tämän jälkeen sinulle esitetään interaktiivinen opastus, joka ohjaa sinut Logto SDK:n integroimisessa ASP.NET Core -sovelluksesi kanssa. Seuraava sisältö voi toimia viitteenä tulevaisuudessa.
Huomaa, että tuettu minimiversio ASP.NET Core:sta on 6.0.
Avaa Startup.cs (tai Program.cs) ja lisää seuraava koodi rekisteröidäksesi Logto autentikointimiddleware:
AddLogtoAuthentication-metodi suorittaa seuraavat asiat:
LogtoDefaults.CookieScheme:ksi.LogtoDefaults.AuthenticationScheme:ksi.LogtoDefaults.AuthenticationScheme:ksi.Lisää seuraava URI Uudelleenohjaus URI:t -listaan Logto-sovelluksen yksityiskohtien sivulla:
Kirjautuaksesi sisään Logto:lla, voit käyttää ChallengeAsync-metodia:
ChallengeAsync-metodi uudelleenohjaa käyttäjän Logto-kirjautumissivulle.
RedirectUri-ominaisuutta käytetään ohjaamaan käyttäjä takaisin web-sovellukseesi autentikoinnin jälkeen. Huomaa, että se on eri asia kuin uudelleenohjaus URI, jonka asetit Logto-sovelluksen yksityiskohtien sivulla:
RedirectUri-ominaisuus on URI, johon ohjataan sen jälkeen, kun tarvittavat toimet on suoritettu Logto-autentikointimiddleware:ssä.Toimintojen järjestys on 1 -> 2. Selkeyden vuoksi nimitämme uudelleenohjaus URI:ta Logto-sovelluksen yksityiskohtien sivulla Logto uudelleenohjaus URI ja RedirectUri-ominaisuutta sovelluksen uudelleenohjaus URI:ksi.
Logto uudelleenohjaus URI:lla on oletusarvo /Callback, jonka voit jättää sellaiseksi, jos erityisiä vaatimuksia ei ole. Jos haluat muuttaa sen, voit asettaa CallbackPath-ominaisuuden LogtoOptions-kohdassa:
Muista päivittää arvo Logto-sovelluksen yksityiskohtien sivulla vastaavasti.
Lisää seuraava URI Kirjautumisen jälkeinen uudelleenohjaus URI:t -listaan Logto-sovelluksen yksityiskohtien sivulla:
Kirjautuaksesi ulos Logto:lla, voit käyttää SignOutAsync-metodia:
SignOutAsync-metodi tyhjentää autentikointievästeen ja uudelleenohjaa käyttäjän Logto-kirjautumissivulle.
RedirectUri-ominaisuutta käytetään ohjaamaan käyttäjä takaisin web-sovellukseesi uloskirjautumisen jälkeen. Huomaa, että se on eri asia kuin kirjautumisen jälkeinen uudelleenohjaus URI, jonka asetit Logto-sovelluksen yksityiskohtien sivulla:
RedirectUri-ominaisuus on URI, johon ohjataan sen jälkeen, kun tarvittavat toimet on suoritettu Logto-autentikointimiddleware:ssä.Toimintojen järjestys on 1 -> 2. Selkeyden vuoksi nimitämme kirjautumisen jälkeistä uudelleenohjaus URI:ta Logto-sovelluksen yksityiskohtien sivulla Logto kirjautumisen jälkeinen uudelleenohjaus URI ja RedirectUri-ominaisuutta sovelluksen kirjautumisen jälkeinen uudelleenohjaus URI:ksi.
Logto kirjautumisen jälkeinen uudelleenohjaus URI:lla on oletusarvo /SignedOutCallback, jonka voit jättää sellaiseksi, jos erityisiä vaatimuksia ei ole. Jos haluat muuttaa sen, voit asettaa SignedOutCallbackPath-ominaisuuden LogtoOptions-kohdassa:
Muista päivittää arvo Logto-sovelluksen yksityiskohtien sivulla vastaavasti.
Lisää ensin käsittelijämenetelmät PageModel:iin, esimerkiksi:
Lisää sitten painikkeet Razor-sivuusi (html):
<p>On autentikoitu: @User.Identity?.IsAuthenticated</p>
<form method="post">
@if (User.Identity?.IsAuthenticated == true)
{
<button type="submit" asp-page-handler="SignOut">Kirjaudu ulos</button>
} else {
<button type="submit" asp-page-handler="SignIn">Kirjaudu sisään</button>
}
</form>
Se näyttää "Kirjaudu sisään"-painikkeen, jos käyttäjä ei ole autentikoitu, ja "Kirjaudu ulos"-painikkeen, jos käyttäjä on autentikoitu.
Nyt voit ajaa web-sovelluksen ja yrittää kirjautua sisään/ulos Logto:lla:
Jos kohtaat ongelmia integroinnin aikana, älä epäröi ottaa meihin yhteyttä sähköpostitse osoitteeseen [email protected] tai liity Discord-palvelimeemme!