記錄一個項目實際遇到的坑,不要把token存放在session,要存在在cache里面!!
因為Session并不能設置expire過期時間,Session::set()方法第三個參數是作用域,而非過期時間!!!因此不能混用cache的用法。
session的set方法
? ? /**
? ? ?* session設置
? ? ?* @param string ? ? ? ?$name session名稱
? ? ?* @param mixed ? ? ? ? $value session值
? ? ?* @param string|null ? $prefix 作用域(前綴)
? ? ?* @return void
? ? ?*/
? ? public static function set($name, $value = '', $prefix = null)
? ? {
? ? ? ? empty(self::$init) && self::boot();? ? ? ? $prefix = !is_null($prefix) ? $prefix : self::$prefix;
? ? ? ? if (strpos($name, '.')) {
? ? ? ? ? ? // 二維數組賦值
? ? ? ? ? ? list($name1, $name2) = explode('.', $name);
? ? ? ? ? ? if ($prefix) {
? ? ? ? ? ? ? ? $_SESSION[$prefix][$name1][$name2] = $value;
? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? $_SESSION[$name1][$name2] = $value;
? ? ? ? ? ? }
? ? ? ? } elseif ($prefix) {
? ? ? ? ? ? $_SESSION[$prefix][$name] = $value;
? ? ? ? } else {
? ? ? ? ? ? $_SESSION[$name] = $value;
? ? ? ? }
? ? }
緩存的set方法?
? ? /**
? ? ?* 寫入緩存
? ? ?* @access public
? ? ?* @param ?string ? $name ? 緩存標識
? ? ?* @param ?mixed ? ?$value ?存儲數據
? ? ?* @param ?int|null $expire 有效時間 0為永久
? ? ?* @return boolean
? ? ?*/
? ? public static function set($name, $value, $expire = null)
? ? {
? ? ? ? self::$writeTimes++;? ? ? ? return self::init()->set($name, $value, $expire);
? ? }
??
這個區別,平時都不怎么會用到,今天就遇到了怎么樣都取不到token,改用cache方法就好了,注意注意