通过会话和 cookie 终止用户 (auth_key)

terminate user by session and cookie(auth_key)

我想终止使用一个用户名登录的用户,我在 mongodb 中保存会话并删除会话并在 mysql 用户 table 中更改 auth_key,然后用户抛出站点 out.But 有问题,当我更改身份验证密钥时,所有检查过的用户都记住了我,抛出站点注销,我以不同的方式将 auth_key 存储在会话数据库 mongodb 中 起初我以这种方式保存授权密钥 (web.php)

'session' => [
'class' => 'yii\mongodb\Session',
'writeCallback' => function($session)
 {
  return [
          'user_id' => Yii::$app->user->id,
          'agent' => Yii::$app->request->getUserAgent(),
          'ip' => Yii::$app->request->getUserIP(),
          'auth_key' => Yii::$app->security->generateRandomString(),
        ];
      }
 ],

但这在每次刷新页面时都会出现问题 auth_key 重新生成,

另一种方法,我在登录后覆盖方法,但有时会出现问题,auth_key 会保存,但有时不会。

我该怎么做才能避免这个问题?你对这种方式有什么建议?这是正确的吗?

您不得在 writeCallback 中使用 auth_key。 它是每次页面刷新时重新生成。