Yii2 在 API 中设置活动用户

lil*_*uit 3 yii2

在 Yii 1 中,我在 API 控制器中使用了以下代码来设置活动用户:

Yii::$app->user->id = $my_userid;
Run Code Online (Sandbox Code Playgroud)

但在 Yii2 中,这是不允许的,因为 Yii::$app->user->id 现在是只读的。

设置活动用户 ID 的等效命令是什么?

aro*_*hev 5

您需要使用API 的setIdentity()方法:

use Yii;

...

Yii::$app->user->setIdentity($user)
Run Code Online (Sandbox Code Playgroud)

setIdentity():更改用户身份而不触及会话或cookie。这最适合用于无状态 RESTful API 实现。

其中$user应该是User模型的有效实例。

如果您需要更改现有用户,请使用switchIdentity()方法:

use Yii;

...

Yii::$app->user->switchIdentity($user)
Run Code Online (Sandbox Code Playgroud)