Javad Ezaz
5 سال پیش توسط Javad Ezaz مطرح شد
1 پاسخ

پاک کردن تمامی api token های کاربر در Passport

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


ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
1

درود

در Passport یه تریت "HasApiTokens" داریم. مستندات لاراول توصیه میکنه این تریت رو به مدل User اضافه کنیم.
یکی از متدهای این تریت متد "tokens" هست که یه رابطه hasMany بین مدل "Laravel\Passport\Token" و مدلی که از تریت استفاده میکنه بوجود میاره. میتونید از این متد برای دریافت لیست تمام توکن های کاربر استفاده کنید.

$userTokens = $userInstance->tokens;

حالا مدل Token خودش یه متد "revoke" داره که به شکل زیر میتونی استفاده کنی و تمام توکن‌ها رو حذف کنی:

foreach($userTokens as $token) {
    $token->revoke();   
}

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

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