سلام وقتتون بخیر
میخاستم بدونم چطور باید توکن تولید شده برای موبایل یا ایمیل رو میتونم تاریخ انقضاش رو تغییر یدم
به صورت پیش فرض اکسپایر توکن برای ایمیل ۲۴ ساعت و برای اس ام اس ۳۰ ثانبه است که میخام این تایم ها رو تغییر بدم
به شکل زیر عمل کنید:
دست گلت درد نکنه سهیل جان
فقط اینجوری لایف تایم برای کل توکن هام یکی ست نمیشه؟
من یه سمپل دیده بودم که از روش زیر استفاده میکرد
ولی مشکلم با اون کلاس
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"; }
هیچ کدوم از این دو روش کار نکرد روش دیگه ای ندارید؟
از کدام متد برای تولید توکن استفاده می کنید؟
من توی فایل appSettings.json زمان اکسپایر تمام توکن هام رو بر حسب ثانیه دریافت میکنم و بعدا توی کدام میخام این موارد درو جایگزین کنم ک کدام به صورت هارد کد نباشه
توی گام اول من نیاز دارم برای ارسال توکن از طریق ایمیل و ارسال توکن از طریق sms و reset password این کار رو انجام بدم
این روشی رو که گفتید رو برای sms انجام دادم ولی وقتی میخاست توکن جنریت کنه برای من رشته توکنی بلندی رو که برای ارسال ایمیل هست رو برمیگردونه
در سیستم Identity سه تا TokenProvider وجود داره EmailTokenProvider ، PhoneNumberTokenProvider ، DataProtectionTokenProvider . دو مورد آخر که مربوط به ایجاد توکن برای موبایل و ایمیل هستند این قابلیت رو ندارند که بتوان زمان انقضا برای توکن تولید شده تنظیم کنند. اما Provider اول این امکان رو داره. سوالم اینه که شما برای چه کار داری از این متد استفاده میکنی تغییر شماره موبایل یا احراز هویت دو مرحله ای ؟
قبل از اول تشکر میکنم از راهنمایی هات سهیل عزییز
و دوم این که ما تو سیستم میخایم حتما شماره های کاربر و ایمیل هاشون صحیح وارد بشه تا بعدا بتونیم با توجه به گروه هایی که توشون هستند براشون پیام بفرستیم
بنظر شما روش صحیح برای انجام این کار چی میتونه باشه؟
https://stackoverflow.com/questions/46712760/asp-identity-2-change-expiry-time-for-mobile-token
من مثال لینک بالا رو دیدم ولی واقعا اون اگلوریتمی که گذاشته هیچحوره کار نمیکنه ی جایی از کدش ناقصه
برای ایجاد توکن برای ایمیل که فکر نمیکنم مشکلی داشته باشیم در حال حاظر چالش شما شماره تلفنه که راجب این موضوع در Github بحث شده که چرا توکنی که برای شماره تلفن تولید میشه جالب نیست و Issue نشون میده که مشکل در نسخه 2.1 رفع شده و بنده هم مشکلی ندارم یک توکن کوتاه دریافت کردم:
به این علت که در IdentityOptions مقدار Token.ChangePhoneNumberTokenProvider برابر Phone قرار داره و بقیه آنها از سیستم پیشرفت استفاده میکنند ( باید این رو چک کنید):
حال تنها کاری که باید بکنیم این است که Token Provider override کنیم و بهش تاریخ انقضا بدیم، راجب آن در این Issue بحث شده.
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)