怎么记得我正在研究Laravel和Yii2?

时间:2016-12-13 12:45:29

标签: yii2 laravel-5.3 remember-me

我安装了两个不同的PHP框架 Laravel 5.3 Yii2高级。这两个框架都提供了开箱即用的身份验证,非常棒。

两者都在登录页面上有public static void startAsRecent(Context context, TransferTemplate template) { Intent starter = new Intent(context, TransferAnotherAccountActivity.class); starter.putExtra(TransferCommonActivity.EXTRA_KEY_TEMPLATE, template); starter.putExtra(TransferCommonActivity.EXTRA_KEY_IS_RECENT, true); context.startActivity(starter); } 复选框。

在Laravel中,我发现用户表上有一个Remember me字段,根据我对记住我功能的理解。

但Yii2的用户表上没有这样的额外字段。

所以,我猜两者都提供相同的功能,但工作方式不同。所以我想知道这个功能在这两个框架上是如何工作的?

任何帮助都将不胜感激。

注意:我问这个是因为我有一个用Yii2构建的系统,现在我要用Laravel构建一个新系统。新的Laravel系统将使用Yii2的相同remember_token表。表示用户可以使用相同的凭据登录系统。

谢谢,

Parth vora

2 个答案:

答案 0 :(得分:0)

Yii2有auth_key - 它的默认名称,但你可以定义你自己的列名,然后在身份类中声明它,它在函数getAuthKey()中实现了yii \ web \ IdentityInterface。

答案 1 :(得分:0)

Yii 2中的remember me函数(以及大多数php框架)使用基于cookie的登录。

来自docs

  

getAuthKey()返回用于验证基于cookie的登录的密钥。密钥存储在登录cookie中,稍后将与服务器端版本进行比较,以确保登录cookie有效。

Yii默认使用auth_key字段。这可能与Laravel的remember_token相同。

工作原理如下:

  1. 选中remember me字段进行登录。
  2. Yii设置一个包含用户(序列化)idauth_keyduration的Cookie(表示此Cookie有效期的秒数)。在yii2中,cookie名称由config(用户组件)中的identityCookie数组指定。
  3. 检查所有客人的请求是否存在cookie,如果存在并且有效,则用户已登录。
  4. 这基本上是基于cookie的登录是如何工作的,所以我假设Laravel使用类似的,如果不是完全相同的实现。