elrod/laravel-multitenancy-impersonate

此包的最新版本(v1.0.0)没有可用的许可证信息。

Laravel 多租户身份模拟从房东到租户

v1.0.0 2022-02-23 22:22 UTC

This package is not auto-updated.

Last update: 2024-09-20 09:33:32 UTC


README

Laravel 多租户身份模拟从房东到租户。

此包专为与 Spatie Laravel Multitenancy 一起使用而设计。

安装

您可以通过 composer 安装此包

composer require elrod/laravel-multitenancy-impersonate

发布配置和迁移

php artisan vendor:publish

您将看到要发布的项列表: Image text 通过给包索引编号选择您要发布的项

用法

房东控制器

房东控制器创建令牌并将用户重定向到租户以实现自动登录。

创建租户后可以使用 redirectTenant 方法

use elrod\MultitenancyImpersonate\Traits\CanImpersonate;

class ImpersonateController
{
    use CanImpersonate;

    public function redirectTenant($id)
    {
        $tenant = Tenant::find($id);
        
        $redirect_url = "http://{$tenant->domain}/admin";

        $token = $this->createToken($tenant,auth()->user(),$redirect_url);

        $this->impersonate($tenant,$token->token,auth()->user());
            
        $tenant_url = "http://{$tenant->domain}/admin/impersonate";

        return redirect("{$tenant_url}/{$token->token}");
    }

}

创建路由

Route::get('/admin/impersonate/{token}', function ($token) {

    $impersonate = ImpersonateToken::where('token',$token)->first();

    $user = User::find($impersonate->user_id);

    Auth::login($user);

    return redirect()->route('admin');

});

Route::middleware(['auth:sanctum', 'verified'])->get('/admin', function () {
    return 'Hello World';
})->name('admin');

鸣谢

许可证

MIT 许可证(MIT)。请参阅 许可证文件 获取更多信息。