root 9 anni fa
parent
commit
3bc053bdde

+ 13 - 3
data/model/mb_user_token.model.php

@@ -11,8 +11,6 @@ defined('InShopNC') or exit('Access Invalid!');
 
 class mb_user_tokenModel extends Model
 {
-    const token_expire = 600;     // 单位:分钟
-
     public function __construct()
     {
         parent::__construct('mb_user_token');
@@ -76,7 +74,7 @@ class mb_user_tokenModel extends Model
         $ret = $this->addMbUserToken($mb_user_token_info);
         if ($ret) {
             $key = func::gen_token_key($token);
-            wcache($key, array('info' => serialize($mb_user_token_info)),'',self::token_expire);
+            wcache($key, array('info' => serialize($mb_user_token_info)),'',func::token_expire);
 
             return $token;
         } else {
@@ -85,6 +83,18 @@ class mb_user_tokenModel extends Model
     }
 
     /**
+     * 删除token
+     *
+     * @param $token
+     * @return mixed
+     */
+    public function del_token($token){
+        $key = func::gen_token_key($token);
+        dcache($key);
+        return $this->where(array('token'=>$token))->delete();
+    }
+
+    /**
      * 删除
      *
      * @param int $condition 条件

+ 4 - 0
helper/func.php

@@ -8,6 +8,10 @@
 
 class func
 {
+
+    const auth_code_expire = 5;   // 单位:分钟
+    const token_expire = 3;     // 单位:分钟
+
     // 生成验证码key
     public static function gen_auth_code_key($mobile)
     {

+ 17 - 1
mobile/control/control.php

@@ -124,8 +124,19 @@ class mbMemberControl extends mobileControl
         parent::__construct();
     }
 
+    /**
+     * 校验token
+     *
+     * @param $token
+     * @return bool
+     */
     public function checkToken($token)
     {
+        if (empty($token)) {
+            $this->err_code = errcode::ErrInputParam;
+            return false;
+        }
+
         $key = func::gen_token_key($token);
         $ret = rcache($key);
         if (empty($ret)) {
@@ -135,6 +146,12 @@ class mbMemberControl extends mobileControl
                 $this->err_code = errcode::ErrLogin;
                 return false;
             }
+            // 判断过期
+            if (time() - intval($mb_user_token_info['login_time']) > func::token_expire) {
+                $model_mb_user_token->del_token($token);
+                $this->err_code = errcode::ErrTokenExpire;
+                return false;
+            }
         } else {
             $mb_user_token_info = unserialize($ret['info']);
         }
@@ -153,7 +170,6 @@ class mbMemberControl extends mobileControl
         $this->member_info['store_id'] = $seller_info['store_id'];
 
         $this->err_code = errcode::Success;
-
         return true;
     }
 }

+ 3 - 6
mobile/control/member_login.php

@@ -16,9 +16,6 @@ class LoginType extends SplEnum
 
 class member_loginControl extends mbMemberControl
 {
-    const auth_code_expire = 5;   // 单位:分钟
-    const token_expire = 3;     // 单位:分钟
-
     public function __construct()
     {
         parent::__construct();
@@ -44,7 +41,7 @@ class member_loginControl extends mbMemberControl
         $status = $sms->send($mobile, array('code' => $code, 'type' => Sms::register_code, 'time' => '5'));
         if ($status == 0) {
             $key = func::gen_auth_code_key($mobile);
-            wcache($key, array('code' => $code, 'mobile' => $mobile), '', self::auth_code_expire);
+            wcache($key, array('code' => $code, 'mobile' => $mobile), '', func::auth_code_expire);
         } else {
             return joutput_error(errcode::ErrSms, "send error={$status}.");
         }
@@ -136,7 +133,7 @@ class member_loginControl extends mbMemberControl
                     } else {
                         $ret_val = array();
                         $ret_val['token'] = $token;
-                        $ret_val['cache_expiration_time'] = time() + self::token_expire * 60;
+                        $ret_val['cache_expiration_time'] = time() + func::token_expire * 60;
                         $ret_val['systime'] = time();
                         return joutput_data($ret_val);
                     }
@@ -157,7 +154,7 @@ class member_loginControl extends mbMemberControl
                     } else {
                         $ret_val = array();
                         $ret_val['token'] = $token;
-                        $ret_val['cache_expiration_time'] = time() + self::token_expire * 60;
+                        $ret_val['cache_expiration_time'] = time() + func::token_expire * 60;
                         $ret_val['systime'] = time();
                         return joutput_data($ret_val);
                     }