Rakenna ASP.NET Core -autentikointi Logto:lla
Opi rakentamaan käyttäjän autentikointiprosessi ASP.NET Core:ssa integroimalla Logto SDK.
Johdanto
- Logto on moderni Auth0-vaihtoehto, jonka avulla voidaan rakentaa asiakasidentiteetti-infrastruktuuri vähäisellä vaivalla. Se tukee useita kirjautumismenetelmiä, kuten käyttäjänimi, sähköposti, puhelinnumero ja suositut sosiaalisen median kirjautumiset kuten Google ja GitHub.
- ASP.NET Core on monialustainen, korkean suorituskyvyn avoimen lähdekoodin kehys nykyaikaisten, pilvipohjaisten, Internet-yhteyksien omaavien sovellusten rakentamiseen.
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ä.
Edellytykset
Ennen kuin aloitat, varmista, että sinulla on seuraavat:
- Logto-tili. Jos sinulla ei ole sellaista, voit rekisteröityä ilmaiseksi.
- .NET-kehitysympäristö ja ASP.NET Core -projekti. Jos sinulla ei ole sellaista, voit asentaa .NET:n ja seurata ASP.NET-ohjeita projektisi perustamiseksi.
Luo Logto-sovellus
Aloittaaksesi, luo Logto-sovellus "Perinteinen web" -tyypillä. Seuraa näitä vaiheita luodaksesi Logto-sovelluksen:
- Kirjaudu Logto Console.
- Vasemmanpuoleisesta navigointipalkista klikkaa Sovellukset.
- Klikkaa Luo sovellus.
- Avautuvalla sivulla etsi "Perinteinen web -sovellus" -osio ja etsi "ASP.NET Core" -kortti.
- Klikkaa Aloita rakentaminen, ja syötä sovelluksesi nimi.
- Klikkaa Luo.
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.
Integrointi Logto SDK:lla
Asennus
Huomaa, että tuettu minimiversio ASP.NET Core:sta on 6.0
.
Lisää Logto autentikointimiddleware
Avaa Startup.cs
(tai Program.cs
) ja lisää seuraava koodi rekisteröidäksesi Logto autentikointimiddleware:
AddLogtoAuthentication
-metodi suorittaa seuraavat asiat:
- Asettaa oletusautentikointijärjestelmän
LogtoDefaults.CookieScheme
:ksi. - Asettaa oletushaastejärjestelmän
LogtoDefaults.AuthenticationScheme
:ksi. - Asettaa oletuskirjautumisjärjestelmän
LogtoDefaults.AuthenticationScheme
:ksi. - Lisää eväste- ja OpenID Connect -autentikointikäsittelijät autentikointijärjestelmään.
Kirjaudu sisään
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:
- Uudelleenohjaus URI Logto-sovelluksen yksityiskohtien sivulla on URI, johon Logto ohjaa käyttäjän takaisin sen jälkeen, kun käyttäjä on kirjautunut sisään.
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.
Kirjaudu ulos
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:
- Kirjautumisen jälkeinen uudelleenohjaus URI Logto-sovelluksen yksityiskohtien sivulla on URI, johon Logto ohjaa käyttäjän takaisin sen jälkeen, kun käyttäjä on kirjautunut ulos.
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.
Toteuta kirjautumis-/uloskirjautumispainikkeet (Razor Pages)
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.
Tarkistuspiste: Aja web-sovellus
Nyt voit ajaa web-sovelluksen ja yrittää kirjautua sisään/ulos Logto:lla:
- Avaa web-sovellus selaimessasi, sinun tulisi nähdä "On autentikoitu: False" ja "Kirjaudu sisään"-painike.
- Klikkaa "Kirjaudu sisään"-painiketta, ja sinut pitäisi ohjata Logto-kirjautumissivulle.
- Kirjauduttuasi sisään, sinut pitäisi ohjata takaisin web-sovellukseen, ja sinun pitäisi nähdä "On autentikoitu: True" ja "Kirjaudu ulos"-painike.
- Klikkaa "Kirjaudu ulos"-painiketta, ja sinut pitäisi ohjata Logto-kirjautumissivulle, ja sitten takaisin web-sovellukseen.
Jos kohtaat ongelmia integroinnin aikana, älä epäröi ottaa meihin yhteyttä sähköpostitse osoitteeseen [email protected] tai liity Discord-palvelimeemme!