مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

sohail_akhb

عضویت از 1395/11/15

تغییر زمان اکسپایر تایم توکن های تولید شده توسط identity؟

  • دوشنبه 10 دی 1397
  • 11:18
تشکر میکنم

سلام وقتتون بخیر

میخاستم بدونم چطور باید توکن تولید شده برای موبایل یا ایمیل رو میتونم تاریخ انقضاش رو تغییر یدم

به صورت پیش فرض اکسپایر توکن برای ایمیل ۲۴ ساعت و برای اس ام اس ۳۰ ثانبه است که میخام این تایم ها رو تغییر بدم

پاسخ های این پرسش

تعداد پاسخ ها : 8 پاسخ
کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • دوشنبه 10 دی 1397
  • 11:57

به شکل زیر عمل کنید:

کاربر سایت

sohail_akhb

عضویت از 1395/11/15

  • دوشنبه 10 دی 1397
  • 12:10

دست گلت درد نکنه سهیل جان

فقط اینجوری لایف تایم برای کل توکن هام یکی ست نمیشه؟

من یه سمپل دیده بودم که از روش زیر استفاده میکرد

ولی مشکلم با اون کلاس

fc6238AuthenticationService هست که اصلا پارامترا براش درست ست نمیشن
 public override async Task<string> GenerateChangePhoneNumberTokenAsync(User user, string phoneNumber)
         {
         
             var token = Rfc6238AuthenticationService.GenerateCode(
                 user.SecurityStamp,
                 phoneNumber,
                 "optional modifier",
                 TimeSpan.FromSeconds(_configTokensExpireSec.PhoneNumber));
             return "token";
        }

کاربر سایت

sohail_akhb

عضویت از 1395/11/15

  • دوشنبه 10 دی 1397
  • 16:17

هیچ کدوم از این دو روش کار نکرد روش دیگه ای ندارید؟

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • دوشنبه 10 دی 1397
  • 16:32

از کدام متد برای تولید توکن استفاده می کنید؟

کاربر سایت

sohail_akhb

عضویت از 1395/11/15

  • دوشنبه 10 دی 1397
  • 19:39

من توی فایل appSettings.json زمان اکسپایر تمام توکن هام رو بر حسب ثانیه دریافت میکنم و بعدا توی کدام میخام این موارد درو جایگزین کنم ک کدام به صورت هارد کد نباشه

توی گام اول من نیاز دارم برای ارسال توکن از طریق ایمیل و ارسال توکن از طریق sms و reset password این کار رو انجام بدم

این روشی رو که گفتید رو برای sms انجام دادم ولی وقتی میخاست توکن جنریت کنه برای من رشته توکنی بلندی رو که برای ارسال ایمیل هست رو برمیگردونه

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • دوشنبه 10 دی 1397
  • 21:02

در سیستم Identity سه تا TokenProvider وجود داره EmailTokenProvider ، PhoneNumberTokenProvider ، DataProtectionTokenProvider . دو مورد آخر که مربوط به ایجاد توکن برای موبایل و ایمیل هستند این قابلیت رو ندارند که بتوان زمان انقضا برای توکن تولید شده تنظیم کنند. اما Provider اول این امکان رو داره. سوالم اینه که شما برای چه کار داری از این متد استفاده میکنی تغییر شماره موبایل یا احراز هویت دو مرحله ای ؟

کاربر سایت

sohail_akhb

عضویت از 1395/11/15

  • دوشنبه 10 دی 1397
  • 21:18

قبل از اول تشکر میکنم از راهنمایی هات سهیل عزییز

و دوم این که ما تو سیستم میخایم حتما شماره های کاربر و ایمیل هاشون صحیح وارد بشه تا بعدا بتونیم با توجه به گروه هایی که توشون هستند براشون پیام بفرستیم

بنظر شما روش صحیح برای انجام این کار چی میتونه باشه؟

https://stackoverflow.com/questions/46712760/asp-identity-2-change-expiry-time-for-mobile-token

من مثال لینک بالا رو دیدم ولی واقعا اون اگلوریتمی که گذاشته هیچحوره کار نمیکنه ی جایی از کدش ناقصه

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • سه شنبه 11 دی 1397
  • 09:21

برای ایجاد توکن برای ایمیل که فکر نمیکنم مشکلی داشته باشیم در حال حاظر چالش شما شماره تلفنه که راجب این موضوع در Github بحث شده که چرا توکنی که برای شماره تلفن تولید میشه جالب نیست و Issue نشون میده که مشکل در نسخه 2.1 رفع شده و بنده هم مشکلی ندارم یک توکن کوتاه دریافت کردم:

به این علت که در  IdentityOptions مقدار Token.ChangePhoneNumberTokenProvider برابر Phone قرار داره و بقیه آنها از سیستم پیشرفت استفاده میکنند ( باید این رو چک کنید):

حال تنها کاری که باید بکنیم این است که Token Provider  override کنیم و بهش تاریخ انقضا بدیم، راجب آن در این Issue بحث شده.

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)