اذهب إلى المحتوى

السؤال

نشر (معدل)

أقوم باستخدام tokens لمصادقة المستخدمين وتسجيل دخولهم عن طريق API في لارافل. والآن عند قيام المستخدم بتسجيل الخروج أرغب بإزالة الtoken الموافق لهذا المستخدم، لقد حاولت استخدام هذا الإجراء:

Auth::user()->tokens()->delete();

ويتم تسجيل خروج المستخدم، ولكن أيضاً يتم حذف جميع tokens المخزنة لهذا المستخدم بدلاً من الtoken الخاص بهذه الجلسة. ولكنني أرغب ببقاء المستخدم ضمن الموقع في الجلسات الأخرى وإغلاق هذه الجلسة فقط فكيف يمكنني الاحتفاظ بتسجيل الدخول للمستخدم في باقي الجلسات؟

تم التعديل في بواسطة Amir Alsaeed

Recommended Posts

  • 0
نشر

لإزالة token الخاص بمستخدم محدد، يمكنك الاستعلام عن طريق الرقم الفريد المعرف لهذا المستخدم:

Auth::user()->tokens()->where('id', $id)->delete();

ثم يجب عليك تحديد المستخدم عند استقبال الطلب، ويمكنك تنفيذ ذلك بحيث يصبح الكود كالتالي:

// الحصول على المستخدم الذي يرغب بتسجيل الخروج من الموقع

$user = request()->user(); //or Auth::user()

// حذف token

$user->tokens()->where('id', $user->currentAccessToken()->id)->delete();

ويمكنك أيضاً بشكل مختصر ومباشر استخدام currentAccessToken كالتالي:

$request->user()->currentAccessToken()->delete();

ولكن عندها يجب عليك إضافة HasApiTokens ضمن مودل المستخدم.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...