W jaki sposób zrobić potwierdzenie adresu e-mail?

0

Cześć.
Buduję ostatnio małą aplikację i zaimplementowałem na razie prosty system rejestracji i logowanie z JWT.
Lecz zatrzymał mnie taki problem z potwierdzeniem adresu email w internecie jest mnóstwo tutoriali jak to się robi z Identity, ale nigdzie nie ma prostego przykładu (albo ja nie potrafię szukać) w jaki sposób wykonać "samemu" potwierdzenie emailu.
Czy do tego trzeba samemu jakąś funkcję zaimplementować by generowała jakiś losowy ciąg, aleee.. nie wiem co dalej
Czy korzystać z metody GenerateEmailConfirmationTokenAsync, która jest w Identity? - Tylko że wtedy będę musiał wszystko przerzucać na Identity i wydaje mi się że wtedy nie ma sensu korzystanie z JWT.
Czy może jest jakiś inny scenariusz?

ps. jestem początkujący, także również proszę o wyrozumiałość. :)
Pozdrawiam.

3

Nie wiem czym jest identity ale generalnie flow powinno wyglądać tak, że po rejestracji wysyłasz maila do takiego delikwenta z linkiem w który powinien kliknąć, w linku w parametrze powinien być jakiś identyfikator czy hash który po kliknięciu w link zostanie odczytany przez aplikacje do której on prowadzi i odeśle info do serwera, żeby aktywować konto, taki najprostszy chyba sposób

1

A moze skorzystaj z logowania federacyjnego zamiast sie tym przejmowac? (Vide trzymanie hasel itd.)

0
Escanor16 napisał(a):

Nie wiem czym jest identity ale generalnie flow powinno wyglądać tak, że po rejestracji wysyłasz maila do takiego delikwenta z linkiem w który powinien kliknąć, w linku w parametrze powinien być jakiś identyfikator czy hash który po kliknięciu w link zostanie odczytany przez aplikacje do której on prowadzi i odeśle info do serwera, żeby aktywować konto, taki najprostszy chyba sposób

Okej, czyli przy używaniu JWT to nie pchać się w Identity. Czyli należy zrobić random stringa z długą ilością znaków i tego stringa wsadzić w adres url i wysłać na maila.
A skąd serwer będzie wiedział, że dany wygenerowany random string będzie należał do tego konkretnego użytkownika? Random stringa należy zapisać w bazie danych?

0
Captain Jack napisał(a):

A skąd serwer będzie wiedział, że dany wygenerowany random string będzie należał do tego konkretnego użytkownika? Random stringa należy zapisać w bazie danych?

Zazwyczaj spotykałem się z implementacjami, gdzie taki random string był zapisany w bazie (z jakimś czasem ważności, powiązaniem do użytkownika itp.).
Ale można to też zrobić podpisując payload (co zabezpiecza przed modyfikacjami) i zawierając w nim wszystkie wymagane informacje. Zamiast random stringa wtedy taki link może zawierać, np. podpisane JWT ;)

0

Ale przecież Identity ma już gotowy mechanizm. Tak jak mówiłeś - email token, a potem po prostu sprawdzasz, czy token się zgadza. Jest coś takiego jak ValidateToken... coś w tym rodzaju.

1 użytkowników online, w tym zalogowanych: 0, gości: 1