Yii Framework Forum: مشکل با تغییر رمز و عمل کردن کوکی با رمز قبلی - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

مشکل با تغییر رمز و عمل کردن کوکی با رمز قبلی

#1 User is offline   ReZaZaRe 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 11
  • Joined: 15-November 12
  • Location:Iran-Mashhad

Posted 24 December 2013 - 02:10 AM

سلام
من امروز با یه چیز عجیب روبرو شدم

اگر کاربری تیک گزینه مرابه خاطر بسپار رو زده باشه و کوکی احراز هویت ایجاد شده باشه
و کاربر بخواد رمز رو تغییر بده ( اگر خروج رو نزده باشه ) هنوز هم می تونه با اون کوکی لاگین کنه از این لحاظ دچار مشکل هست که کاربری که قبلا روی یک سیستم لاگین کرده بود و کوکی براش ست شده اگر بخواد رمز رو تغییر بده تا از سیستم قبلی کسی نتونه لاگین کنه , نمی تونه کاری بکنه

کسی راه حلی برای این موضوع داره

0

#2 User is offline   mahmod 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 10
  • Joined: 08-May 13

Posted 24 December 2013 - 03:20 AM

فکر کنم بتونید بعد از اینکه تعویض پسوورد رو انجام داد یوزر بعد از انجام عملیات logout کنید که دوباره لوگین کنه
0

#3 User is offline   ReZaZaRe 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 11
  • Joined: 15-November 12
  • Location:Iran-Mashhad

Posted 24 December 2013 - 04:32 AM

بزارید یه مثال بزنم
فرض کنید کاربری میاد تو سیستم A لاگین می کنه فریم ورک میاد فایل کوکی رو ست می کنه
بعد کاربر می خواد تو سیستم B رمز عبورش رو تغییر بده بعد از این که تغییر داد ( چه خروج رو بزنه و جه نزنه )
باز هم کاربر می تونه با استفاده از سیستم A لاگین کنه ( بدون رمز جید و با استفاده از همون کوکی که قبلا ایجاد شده )
الان مشکل اینجاست که نباید همچین اتفاقی بیفته

0

#4 User is offline   Hesam K 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 125
  • Joined: 14-August 11

Posted 24 December 2013 - 05:32 AM


سلام
بله این مشکلی که شما میگید فکر کنم وجود داره، منم تا به حال بهش فکر نکرده بودم!
دو تا راه حل به ذهن من میرسه، اولی اینکه اصلا اجازه اینکه کاربر روی چند تا ماشین با کوکی لاگین کنه رو ندیم. خود مستندات فریمورک یه راهی پیشنهاد میده که نتیجه ثانوی اش همین میشه. کاربر وقتی روی یک ماشین جدید کوکی رو ست میکنه، کوکی های قبلی نامعتبر میشه و با اونها لاگین نمیشه کرد. اینجا رو بخونید.

راه دوم هم این هست که تاریخچه ماشین هایی که کاربر روشون لاگین کرده و گزینه لاگین با کوکی رو هم فعال کرده رو نگه داریم. یه چیزی شبیه به گوگل ک به شما میگه روی چند تا ماشین گزینه مرا به خاطر بسپار رو فعال کردید. این روش پیش نیازش تکنیک پاراگراف قبلی هست با این تفاوت که هر ماشین randomLoginKey مخصوص به خودش رو داره و قاعدتا نیاز به یک جدول دیگه واسه ذخیره سازی این اطلاعات داریم. اینطوری اگر مثلا پسورد تغییر کرد، میشه کاری کرد کوکی های همه ماشین های قبلی نامعتبر شناخته شند

کلا اما فکر کنم همون روش اول واسه بیشتر سایت ها کفایت میکنه، فوقش کاربر مجبور میشه دوباره لاگین کنه دیکه! مگه اینکه جز نیازمندی های سایتتون صریحا ذکر شده باشه که میخوام مثه گوگل چند جا پسوردم ذخیره باشه :)

0

#5 User is offline   Nabi 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 208
  • Joined: 22-February 12
  • Location:Ahwaz

Posted 25 December 2013 - 09:02 PM

ما در پروژه ای با این موضوع برخورد داشتیم که شبیه کارهایی که دوستان گفتند عمل کردیم.

یعنی باید از CDbHttpSession استفاده بشه (و نه از CHttpSession) که باید یک تیبل برای اون ایجاد بشه و راهنمای فعالسازی اون اینجاست:
http://www.yiiframew.../CDbHttpSession

و بعد از تعویض پسورد سشن رو از بین میبرید:
Yii::app()->session->destroy();




وقتی پیغام میذارید، بی زحمت متنتون رو انتخاب کنید و این دو تا کار ناقابل رو هم انجام بدید:
1. از اون بالا RTL رو انتخاب کنید.
2. فونت رو هم Tahoma بگذارید.
که چشمون در نیاد.
دمت گرم!

www.IranPHP.ir
2

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users