amir
4 سال پیش توسط amir مطرح شد
13 پاسخ

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

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


ثبت پرسش جدید
سینا خاقانی
تخصص : توسعه دهنده بک‌اند
@sina.it91 4 سال پیش آپدیت شد
0

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

ساخت توکن:

$hash = bin2hex(random_bytes(16));

لینک توضیحات


رضا پارسیان
تخصص : توسعه دهنده Php , Laravel
@Rp76 4 سال پیش مطرح شد
1

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

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

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

amir
تخصص : بک اند و فرانت اند
@behzadi 4 سال پیش مطرح شد
0

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


رضا پارسیان
تخصص : توسعه دهنده Php , Laravel
@Rp76 4 سال پیش مطرح شد
0

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


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش مطرح شد
0

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


Muhammad
تخصص : Back-End Developer
@muhammad 4 سال پیش مطرح شد
2

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


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش آپدیت شد
1

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


amir
تخصص : بک اند و فرانت اند
@behzadi 4 سال پیش مطرح شد
0

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


amir
تخصص : بک اند و فرانت اند
@behzadi 4 سال پیش مطرح شد
0

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


رضا پارسیان
تخصص : توسعه دهنده Php , Laravel
@Rp76 4 سال پیش آپدیت شد
0

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

MD5

42153f3a139743b6f7596fd36931221d // 128bit 

Sha256

d672791aab100580a7a637a8a29f7adbe4077fdec5b3524d405145605419a3b9 // 256 bits

Sha512

20f3dbc9462adac82722b67f3348c28dd2a3295451b2f45e47e9b0647c257b8721963fad63949a90ff8e5fcc1d47e1f54522af7ce9ee5b335a55c8773e4fa014 // 512-bit

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


Muhammad
تخصص : Back-End Developer
@muhammad 4 سال پیش آپدیت شد
0

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

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

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


amir
تخصص : بک اند و فرانت اند
@behzadi 4 سال پیش مطرح شد
0

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


رضا پارسیان
تخصص : توسعه دهنده Php , Laravel
@Rp76 4 سال پیش مطرح شد
0

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


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

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