从 4.1.25 升级到 4.1.26

最后更新于:2022-04-01 15:03:05

Laravel 4.1.26 采用了针对「记得我」cookies 的安全性更新。在此更新之前,如果一个记得我的 cookies 被恶意用户劫持,该 cookie 将还可以生存很长一段时间,即使真实用户重设密码或者注销亦同。 此更动需要在你的 `users` (或者类似的) 的数据表中增加一个额外的 `remember_token` 字段。在更新之后,当用户每次登录你的应用程序将会有一个全新的 token 将会被指派。这个 token 也会在用户注销应用程序后被更新。这个更新的影响为:如果一个「记得我」的 cookie 被劫持,只要用户注销应用程序将会废除该 cookie。 ## 升级路径 首先,增加一个新的字段,可空值、属性为 VARCHAR(100)、TEXT 或同类型的字段 remember_token 到你的 users 数据表中。 然后,如果你使用 Eloquent 认证驱动,依照下面更新你的 User 类别的三个方法: ~~~ public function getRememberToken() { return $this->remember_token; } public function setRememberToken($value) { $this->remember_token = $value; } public function getRememberTokenName() { return 'remember_token'; } ~~~ > 附注: 所有现存的「记得我」sessions 在此更新后将会失效,所以应用程序的所有用户将会被迫重新登录。 ## 组件管理者 两个新的方法被加入到 `Illuminate\Auth\UserProviderInterface` 接口。范例实现方式可以在默认驱动中找到: ~~~ public function retrieveByToken($identifier, $token); public function updateRememberToken(UserInterface $user, $token); ~~~ `Illuminate\Auth\UserInterface` 也加了三个新方法描述在「升级路径」。
';