پیاده سازیJWT Token و JWT Refresh Token در ASP.NET WebApi 5 – قسمت ششم

پیاده سازیJWT Token و JWT Refresh Token در ASP.NET WebApi 5 – قسمت ششم

به نام خدادر ادامه بخش قبلی ، حال باید Controllerجدید بسازیم و برای لاگین و … Action Method داشته باشیم . قبل از انجام این کار، به DTO نیاز داریم.دروه همام فولدر Configuration کلاسی به نام AutResult می سازیمحال درون فولدر Models یک فولدر به نام DTO می سازیم و درون آن هم 2 فولدر به نامهایRequestsResponsesایجاد میکنیم.درون فولدر Requests به کلاسی به شکل زیر نیاز داریمحال برای Request باید Response داشته باشیم، پس درون فولدر Responsesیک کلاس به شکل و نام زیر درست میکنیمحالا میتوانیم ساخت Controller جدید را شروع کنیم. کنترلری به نام SecurityController ایجاد میکنیم.اجازه بدهید در یک تصویر کل DI های لازمه این Controller را انجام بدهم .حالا نوبت به Action Method است که با آن بتوانیم User Register کنیم. چون داریم از Api های آماده Identity استفاده میکنیم، کل متد را در یک تصویر به شکل زیر خواهیم داشتاین Action Method کامل شد و فکر هم نمی کنم به توضیح خاصی نیاز داشته باشد ، ولی پروژه کامپایل نخواهد شد چون ما هنوز متد GenerateJwtToken را نداریم. این متد را هم به شکل زیر خواهیم ساختیک Action Method هم برای لاگین بنویسیم و بعد در PostMan یکبار Registerکنیم و بعد با همان نام کاربری و رمز عبور لاگین را صدا بزنیم و JWT Token را بگیریم.برای لاگین، به یک DTO جدید نیاز داریم که به شکل زیر ایجاد میکنیمحال اکشن متد لاگین را به شکل زیر میسازیمکل فرآیند لاگین، صدا زدن Api های آماده از Identity و در صورت صحیح بودن نام کاربری و رمز عبور، تولید توکن و ارسال آن به کلاینت میباشد. حالا در PostMan تست میکنیمبر اساس تصویر بالا، کاربر با موفقیت Register کرده و Token گرفته، و در تصویر زیر خواهید دید چگونه متد لاگین را صدا خواهیم زد و توکن دریافت خواهیم نمود.مشاهده میکنید که با نام کاربری و رمز مشابه اقدام کردم و توکن گرفتم.حال به کنترلری که قبلن ساختیم سری میزنیم یعنی ProductController، اگر بخواهم همه Action Method های این کنترلر را زیر روال امنیتی قرار دهم که در صورتی که Tokenدنبال Request نباشد کار نکند و خطای لاگین نبودن بدهد، باید به شکل زیر عمل کنمحال ببینیم نتیجه صدا زدن اکشن متدهای این کنترلر چه خواهد بودبه فلش دقت کنیدحال چگونه توکن را در هدر ریکوئست قرار دهم؟. به شکل زیر دقت کنیدتوکن ساخته شده را به شکل بالا در هدر ریکوئست گذاشتم و می بینید که متد به درستی عمل کرده و رکورد بر میگرداند.حالا فقط مانده که در بخشهای بعدی Refresh Token را هم به این سورس کد اضافه کنیم تا همه چیز به درستی و امنیت مناسب به کار خود ادامه دهد.

Author: admin

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *