Use LEFT and RIGHT arrow keys to navigate between flashcards;
Use UP and DOWN arrow keys to flip the card;
H to show hint;
A reads text to speech;
14 Cards in this Set
- Front
- Back
**هدف نهایی sign in |
هدف اینه قرارگرفتن calim ها تو درخواست های بعدی تا authorization بفهمه کی رو راه بده کی رو نده |
|
کل داستان sign in |
چک کردن یوزر پسورد و دیتابیس و اگه درست بود 1- حالت کوکی:قراردادن claim ها توی کوکی از سمت سرور که خود به خود انجام میشه با signinmanager.passwordsignin همه اینکارا خودبخود انجام میشه( داخلش checkpasswordsignin و httpContext.Signin رو فراخوانی میکنه خودش) 2- ایجاد توکن و قراردادن دستی claim ها و استفاده از توکن که سمت کلاینت انجام میشهتا(signinmanager. Checkpasswordاینجا فقط یوزرپسورد برامون چک میکنه بقیه کارا دستیه) *** هدف نهایی که که اینه که یوزر از این بعد درخواست هاش با claim ها بیاد تا authorization Middleware بدونه راه بده یا نده |
|
هنگام رجیستر |
UserManager.CreateAsyncبعدش باید ایمیل یا حالا شماره تلفن طرف که claim کرده رو مطمئن بشیم و confirm اش ون بکنیم |
|
Identity |
Signinmanagerدر خالت کوکی بعد از چک کردن تو دیتابسس پشت صحنه میاد httpContext.Signinو httpcontext.Signout رو فراخوانی میکنه |
|
توکن رو یه حا ذخیره کن هربار مجبور نباشی بری بگیریش |
اگه سروری تو session ذخیره میکنی(که id اش میره تو کوکی)اگه کلاینتی میتونی تو localstorage ذخیره کنی |
|
رابطه ها |
یوزر از جنس claimsproncipal هست که میتونه چندتا کارت شناسایی یا همون identity داشته باشه و هر identity هم میتونه چندتا claims داشته باشه مثل مشخصات تو گواهینامه |
|
Signinmanager.passwordsignin in cookie based automatic does these jobs |
1-check user pass 2- get claims of users 3- put claims in cookie |
|
Signinmanager.checkpassword in token does one thing |
Only one thing Check user and pass (we should call getclaimsasync to get the claims and generate the token. sending the next requests of client should.be done with this claims in token manually) |
|
** |
چک کردن یوزر پس گرفتن کلیم ها و قراردادنش |
|
مستحبه در توکن |
Name o email o expiresAt رو بذاری که کلاینت بتونه اسم و ایمیل کاربر رو بهش نشون بده |
|
Third party authentication DI |
services.AddAuthentication() .AddGoogle(o => { o.ClientId = ""; o.ClientSecret = ""; }) .AddFacebook(o => { o.ClientId = ""; o.ClientSecret = ""; }); |
|
Two factor or mfa |
در دو یا چند مرحله auth انجام میشود. یک یوزر و پسورد و یک مرحله یک کدی که فقط دارنده حساب میتونه بده 1- email or phone 2fa 2- mfa with Authenticator( در ابتدا یک کلیدی باهم به اشتراک میذارند و در طول زمان باهم یک هش رو باهمون کلید تولید خواهند کرد) |
|
UserClaimsPricipalFactory |
تابع مهم generateclaimsAsync رو داره که بعد از چک یوزر پسورد calim های اسم و ایمیل و id و amr رو میزنه بطور دیفالت و همچنین claim هایی که اضافه کردیم رو اول با Usermanager.getclaimsasync میگیره و اضافه شون میکنه |
|
Jwsltsecuritytokenhandler |
دوتابع مهم 1-createToken 2-writeToken |