راکت

نحوه ساخت توکن

13 پاسخ

با سلام میخواستم بدونم چگونه میشه یه استرینگ طولانی به عنوان توکن ساخت که اون رو داخل کوکی ریخت وبعدش چک کنیم که داخل دیتابیس این توکن هست یا نه ؟ آیا تابع php به طور خاص وجود داره؟
@mohaligateway

amir
amir
@behzadi
ثبت پرسش جدید

پاسخ‌ها

13
سینا خاقانی
سینا خاقانی
@sina.it91

تخصص: توسعه دهنده بک‌اند

@behzadi
سلام
در لاراول میشه از کتابخونه ی passport استفاده کرد اما در php باید اینکارو خودتون انجام بدین

ساخت توکن:

$hash = bin2hex(random_bytes(16));

لینک توضیحات

رضا پارسیان
رضا پارسیان
@Rp76

تخصص: توسعه دهنده Php , Laravel

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

میتونید از توابع md5 استفاده کنید

$token=md5($username+$pass) // har jor ke mikhay token ro besaz

شاید پاسخ شما همین‌جا باشد

amir
amir
@behzadi

تخصص: بک اند و فرانت اند

الان من چجور میتونم تعداد کاراکتر هاش رو تعیین کنم؟
@Rp76

رضا پارسیان
رضا پارسیان
@Rp76

تخصص: توسعه دهنده Php , Laravel

ثابت هست ۳۲ هست فکر کنم

حسین شیری نژاد
حسین شیری نژاد
@hosseinshirinegad98

تخصص: programmer

سلام
به طور دستی هم خودت میتونی یه رشته طولانی تولید کنی همه کاراکترهای انگلیسی و اعداد انگلیسی رو تو یه آرایه بریز و آرایه رو بهم بریز و به صورت رندوم هر تعداد کاراکتر خواستی از این آرایه برگردون.

Muhammad
Muhammad
@muhammad

تخصص: Back-End Developer

پیشنهاد می‌کنم راجع به JWT کمی بخونین.

حسین شیری نژاد
حسین شیری نژاد
@hosseinshirinegad98

تخصص: programmer

سلام
از این روش استفاده کنید
هر چقدر طول آرایه a رو افزایش بدی میتونین رشته طولانی تری بدست بیارین.
تابع مذکور تا 62 کاراکتر رندوم بر میگرداند.
پارامترهای تابه عددی از یک تا 62 باید باشد.
همانطور که گفتم دیگر سیمبول های لاتین رو میتونید به این آرایه اضافه کنید تا هش های قویتری بدهد.
توضیح تصویر رو وارد کنید

amir
amir
@behzadi

تخصص: بک اند و فرانت اند

@Rp76 بعد یه سوال دیگه مثلا الان این سایته راکت از سشن توکن خیلی طولانی استفاده کرده چجور میشه این ها رو ساخت ؟
البته این دوستمون هم درست میگن @hosseinshirinegad98 ولی نمیخام کدها شلوغ بشن تابعه دیگه ای نداریم که طولانی تر باشه و تقریبا احتماله هک شدنش صفرباشه؟

amir
amir
@behzadi

تخصص: بک اند و فرانت اند

@muhammad من چیزی که گفتید رو سرچ کردم و واقعا چیز جالبی بود و نوشته بود برای تایید اعتبار لازم نیست هی به دیتابیس ریکویست بدیم میخواستم بدونم چجور این کار رو میشه کرد؟

رضا پارسیان
رضا پارسیان
@Rp76

تخصص: توسعه دهنده Php , Laravel

اونی که سایت راکت استفاده میکنه JWT هست JSON Web Token
تا حالا از این کد ها تولید نکردم ولی همون md5 هم خیلی خوبه!
یا sha256

MD5

42153f3a139743b6f7596fd36931221d // 128bit 

Sha256

d672791aab100580a7a637a8a29f7adbe4077fdec5b3524d405145605419a3b9 // 256 bits

Sha512

20f3dbc9462adac82722b67f3348c28dd2a3295451b2f45e47e9b0647c257b8721963fad63949a90ff8e5fcc1d47e1f54522af7ce9ee5b335a55c8773e4fa014 // 512-bit

کد های بالا برای Rp76 هست

Muhammad
Muhammad
@muhammad

تخصص: Back-End Developer

در واقع JWT میاد و اطلاعات غیر حساس کاربر مثل آیدی و یوزرنیم رو داخل توکن ذخیره می‌کنه. خوب نگاه کنین می‌بینین JWT سه تا کد encryptشدست که با نقطه از هم جدا شدن. قسمت اول هدره، قسمت دوم پیلود که اطلاعات داخلشه، قسمت سوم هم امضای توکن که در سمت سرور باهاش اعتبارسنجی انجام میشه.

اینجا یه مقاله راجع بهش هست:
https://www.sitepoint.com/php-authorization-jwt-json-web-tokens/

البته اگه با لاراول کار می‌کنین، پکیج پسپورت عالیه:
https://laravel.com/docs/8.x/passport
@behzadi

amir
amir
@behzadi

تخصص: بک اند و فرانت اند

@Rp76 @muhammad خیلی ممنون از راهنماییتون کاشکی میشد دوتا جواب رو به عنوان جواب برتر انتخاب کرد تشکر

رضا پارسیان
رضا پارسیان
@Rp76

تخصص: توسعه دهنده Php , Laravel

هیچ کدوم رو انتخاب نکن 🤣🤣

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

ورود یا ثبت‌نام