راکت
حل شده

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

1 پاسخ

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

ثبت پرسش جدید

پاسخ‌ها

1
علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

بهترین پاسخ

درود

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

$userTokens = $userInstance->tokens;

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

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

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

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

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