亲测好用!用 Laravel Package 切换用户登录
对于具有高级 ACL (访问控制表 Access Control List)功能的网站,开发人员通常会自己手动登录为不同的用户,或者在他人和自己的帐户之间来回切换。这对开发调试来说简直就是一个超级浪费时间的过程。(想想就觉得心累)
数字机构 VIA Creative 开发了一个包来解决这个问题:Sudo Su。
Sudo Su 在每个页面的角落加上了一个小按钮,点击时会显示一个用户列表。
从该列表中选择用户将自动以该用户身份登录,同时在会话中保留原始用户ID。此功能可以通过点击按钮快速切换回原始帐户。
登录后,按钮将变为绿色,表示已激活。再次点击,就可以立即恢复到原始的用户帐户。
安装
-
先用 Composer 安装
composer require viacreative/sudo-su
-
然后注册服务提供商
class AppServiceProvider extends ServiceProvider { public function register() { if (env('APP_DEBUG')) { $this->app->register('VIACreative\SudoSu\ServiceProvider'); } } }
提醒:如果你不想被老板开除,就不要在
config/app.php
文件中注册。 -
接着发布包的配置文件
php artisan vendor:publish
-
接下来在你的布局模板中加入下面这段代码
@if (config('app.debug')) @include('sudosu::user-selector') @endif
好了这下子可以开始玩了~
提醒一下!
如果使用不当,可能会造成严重的安全问题,因为任何人都可以控制任何用户的帐户。请确保服务提供器仅在应用程序处于调试或者本地环境中时注册。
另外!默认情况下,这个包会在域名后缀不是 .dev
或 .local
的任何域上被禁用。这是一种安全措施,可以减少因为意外启用包的风险。如果开发中有不同的 TLD(顶级域名 Top Level Domain) ,可以在 sudosu.allowed_tlds
上编辑 配置选项。
骏妞儿提醒:在玩这个包的时候不小心踩坑了,事关这个包要求 PHP 的版本必须 ">=7.0" !Hoho~ 感谢安哥哥提点 @overtrue
更多关于这个包的信息,你可以在推特上 @viacreative 或者访问 他们的网站。
参考链接:https://laravel-news.com/sudo-su
更多扩展介绍可以上 资讯站 查看哟
本作品采用《CC 协议》,转载必须注明作者和本文链接
很好玩的一个东西,平时要调试不同用户身份,都是打开chrome 的其他人身份来操作的。各有利弊吧。。
平时两个浏览器切换
实际应用中session内不单纯的存储的是登陆信息,还有其他信息。
@安正超 安哥哥 6666666
自己参考laravel-5-boilerplate写了个login as的功能,只针对admin开放,生产环境也可以用,感觉更符合需求
用两个浏览器的路过
@linhaijian 那你也是需要两个窗口来回切换 :joy:
sudo su 可以关闭吗?上传到线上了。
sudo su 可以关闭吗?
还可以用端口访问吗 例如 www.xxx.com:8080