Yii2:为什么类中的auth密钥是User


Yii2: Why is the auth key in class User?

正如标题所阐明的,为什么在Yii2中引入auth密钥?它的主要用途是什么?它在身份验证中是如何有用的?

主要用途是通过cookie对用户进行身份验证。当你选择在登录时被记住时,这就是你被记住的方式。系统必须以某种方式识别并登录您。它可以将你的用户名和密码保存在cookie中(这是不安全的),也可以通过其他方式记住你。这是手段之一。登录Yii应用程序后,查看它创建的_identitycookie,您会发现auth_key是cookie的一部分。

cookie实际上记住$id、$authKey和$duration,id ''auth_key组合比用户名/密码组合更安全。

如前所述,如果应用程序使用基于cookie的登录功能,则只需要实现getAuthKey()validateAuthKey()。在这种情况下,您可以使用以下代码为每个用户生成一个auth密钥,并将其存储在用户表中:

更多详细信息可在官方文件中找到:https://www.yiiframework.com/doc/guide/2.0/en/security-authentication