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

- 1 هفته پیش
توسط Sjavadez آپدیت شد
Sjavadez ( 7170 تجربه )
1 هفته پیش
تخصص : برنامه نویس php و لاراول

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

بهترین پاسخ انتخاب شده توسط Sjavadez
علی بیات
1 هفته پیش

درود

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

$userTokens = $userInstance->tokens;

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

foreach($userTokens as $token) {
    $token->revoke();   
}
علی بیات ( 193487 تجربه )
1 هفته پیش
تخصص : توسعه دهنده ارشد وب

درود

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

$userTokens = $userInstance->tokens;

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

foreach($userTokens as $token) {
    $token->revoke();   
}
برای ارسال پاسخ باید وارد سایت شوید