lekoala/silverstripe-multi-devices-remember-me

将SS4中的RememberLoginHash后向移植到SS3,以允许多设备记住我令牌

0.1.1 2021-03-02 14:09 UTC

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