我安装了两个不同的PHP框架--Laravel5.3和Yii2高级。这两个框架都提供即时身份验证,这是很棒的。
并且都有登录页面上的复选框Remember me。
在Laravel中,我发现用户表上有一个remember_token字段,根据我的理解,这个字段用于“记住我”特性。
但是,在Yii2 2的用户表上并没有这样的额外字段。
因此,我想两者都提供了相同的特性,但工作方式不同。所以我想知道这个特性在这两个框架上是如何工作的?
任何帮助都将不胜感激。
注意:我问这个问题是因为我有一个用Yii2构建的系统,现在我要用Laravel构建一个新的系统。新的Laravel系统将使用相同的user表的Yii2。意味着用户可以使用相同的凭据登录到两个系统。
谢谢,
Parth vora
发布于 2016-12-13 12:48:42
Yii2有auth_key --它的默认名称,但是您可以定义您自己的列名,然后在identity类中声明它,这个类在getAuthKey()函数中实现了yii\IdentityInterface。
发布于 2016-12-13 13:25:39
Yii 2中的remember me函数(以及大多数php框架)使用基于cookie的登录。
来自文档:
getAuthKey()返回一个用于验证基于cookie的登录的密钥。密钥存储在登录cookie中,稍后将与服务器端版本进行比较,以确保登录cookie是有效的。
Yii默认使用auth_key字段。这可能和Laravel的remember_token一样。
它的工作方式如下:
remember me字段登录已选中。id、auth_key和duration (表示此cookie的有效期的秒数)。在yii2中,cookie名称由identityCookie数组在config (用户组件)中指定。这就是基于cookie的登录是如何工作的,所以我假设Laravel使用的是类似的,如果不是完全相同的实现的话。
https://stackoverflow.com/questions/41121487
复制相似问题