From 0ed7c244720fee8a970e9b65ccb09964e06f53d8 Mon Sep 17 00:00:00 2001 From: lukinovec Date: Thu, 1 Sep 2022 13:19:56 +0200 Subject: [PATCH] Add notes about guards to the user impersonation page --- source/docs/v3/features/user-impersonation.blade.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/source/docs/v3/features/user-impersonation.blade.md b/source/docs/v3/features/user-impersonation.blade.md index 1a45ac4..82d32ee 100644 --- a/source/docs/v3/features/user-impersonation.blade.md +++ b/source/docs/v3/features/user-impersonation.blade.md @@ -6,7 +6,9 @@ section: content # User impersonation {#user-impersonation} -This package comes with a feature that lets you impersonate users inside tenant databases. This feature works with **any identification method** and **any auth guard** — even if you use multiple. +This package comes with a feature that lets you impersonate users inside tenant databases. This feature works with **any identification method** and **any stateful auth guard** — even if you use multiple. + +> Note: If you're currently using a non-stateful auth guard (e.g., Laravel Sanctum's guard), you can still utilize user impersonation by passing a stateful guard to `tenancy()->impersonate()` (e.g., the `'web'` guard). ## How it works @@ -100,6 +102,8 @@ And that's it. The user will be redirected to your impersonation route, logged i ### Custom auth guards {#custom-auth-guards} +> Note: The auth guard used by user impersonation has to be stateful (it has to implement the `Illuminate\Contracts\Auth\StatefulGuard` interface). + If you're using multiple auth guards, you may want to specify what auth guard the impersonation logic should use. To do this, simply pass the auth guard name as the fourth argument to the `impersonate()` method. So to expand on our example above: