lekoala / silverstripe-multi-devices-remember-me
将SS4中的RememberLoginHash后向移植到SS3,以允许多设备记住我令牌
0.1.1
2021-03-02 14:09 UTC
Requires
- php: >=7.2
- silverstripe/framework: ^3.6
This package is auto-updated.
Last update: 2024-08-29 05:37:20 UTC
README
将SS4中的RememberLoginHash后向移植到SS3,以允许多设备记住我令牌
代码更改
您需要手动编辑Member.php中的以下行
注释掉在logIn函数中设置alc_enc cookie的部分,它将由RememberMeExtension::setDeviceCookie设置
public function logIn($remember = false) { ... // Only set the cookie if autologin is enabled RememberMeExtension::setDeviceCookie($this, $remember); // if($remember && Security::config()->autologin_enabled) { // // Store the hash and give the client the cookie with the token. // $generator = new RandomGenerator(); // $token = $generator->randomToken('sha1'); // $hash = $this->encryptWithUserSettings($token); // $this->RememberLoginToken = $hash; // Cookie::set('alc_enc', $this->ID . ':' . $token, 90, null, null, null, true); // } else { // $this->RememberLoginToken = null; // Cookie::force_expiry('alc_enc'); // } ...
按照以下方式编辑currentUserID函数
public static function currentUserID() { $id = Session::get("loggedInAs"); if(!$id && !self::$_already_tried_to_auto_log_in) { RememberMeExtension::autoLoginFromDevice(); $id = Session::get("loggedInAs"); } return is_numeric($id) ? (int) $id : 0; }
兼容性
测试了3.7+版本
维护者
LeKoala - thomas@lekoala.be