bizhub/impersonate

模拟 Laravel 用户

0.2 2017-03-21 23:00 UTC

This package is auto-updated.

Last update: 2024-09-07 16:16:02 UTC


README

在保持之前认证的同时,以其他用户身份进行认证。

这是通过使用 Laravel 的 Auth::onceUsingId() 功能实现的,您可以在该请求中仅作为用户进行认证。一个中间件将检查您是否通过会话变量进行模拟,并在您停止模拟之前为每个请求激活 Auth::onceUsingId()

安装

1. Composer

执行以下命令以获取最新版本的包

composer require bizhub/impersonate

2. Laravel

CheckIfImpersonating 中间件添加到 app\Http\Kernel.php

  protected $middlewareGroups = [
      'web' => [
          // ...
          
          \Bizhub\Impersonate\Middleware\CheckIfImpersonating::class,
      ]
  ];

CanImpersonate 特性添加到您的 User 模型中

namespace App;

use Bizhub\Impersonate\Traits\CanImpersonate;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use CanImpersonate;
    
    // ...
}

使用方法

// Retrieve your user model
$user = User::find(1);

// Start impersonating
$user->impersonate();

// Redirect/reload the page

// ...

// Stop impersonating
Auth::user()->stopImpersonating();