通过会话和 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。
它是每次页面刷新时重新生成。
我想终止使用一个用户名登录的用户,我在 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。 它是每次页面刷新时重新生成。