基本上我想要做的是使用special token auto login
但是:仅适用于页面的子集。比如,使用令牌登录进行评论是可以的。令牌登录无法更改信用卡信息和购买物品。
所以我想在token_login
表上存储一个布尔users
。
在每次登录时,我使用事件处理程序
将token_login
设置为false
class EventServiceProvider extends ServiceProvider
{
protected $listen = [
'Illuminate\Auth\Events\Login' => [PostLoginListener::class],
];
执行真正的令牌登录时,我将其设置为true。
所以我希望事件被调用 - > token_login = false
然后代码继续运行,在实际自动登录时设置token_login = true。
现在这需要事件实际上始终同步并且始终在其他代码之前触发。是这样的吗?
答案 0 :(得分:7)
只要您的PostLoginListener
未实现Illuminate\Contracts\Queue\ShouldQueue
界面,您的活动就会同步处理。
答案 1 :(得分:1)
由于PHP是一种同步语言(如果您不使用HHVM或Hack),事件总是以相同的顺序触发。因此,您可以测试此事件是否在另一个事件之前触发,然后再远离它。
编辑:
Laravel激发事件的方式很大程度上取决于ServiceProvider数组存储在config/app.php
内的顺序。