static function logout() { Model_Session::session_start(true); session_destroy(); unset($_SESSION[self::AUTH_LOGIN_SEESION_KEY]); unset($_SESSION['safe_logined']); }
<?php Model_Session::session_start(); $env = PtConfig::$env; $user_id = Controller\Mission\Auth::get_user_id(); $is_wechat = PtPHP\Utils::is_wechat_browser(); if ($is_wechat && empty($_SESSION['wx_openid'])) { $auth_info = Model_Wechat_Api::get_auth_info(); $openid = $auth_info['openid']; $user_wx = Model_Wechat_User::get_auth_info_by_openid($openid); if (empty($user_wx)) { PtPHP\Model::_debug(array(__METHOD__, "save info")); $user_wx = Model_Wechat_User::save($auth_info); } else { PtPHP\Model::_debug(array(__METHOD__, "from db")); } $_SESSION['wx_openid'] = $openid; unset($user_wx['info']); $_SESSION['wx_auth_info'] = json_encode($user_wx); } $wx_auth_info = isset($_SESSION['wx_auth_info']) ? $_SESSION['wx_auth_info'] : null; //var_dump($_GET);exit; if (!$user_id && !empty($_GET['access_token'])) { $access_token = $_GET['access_token']; $user_info = Model\Ldt\Mission\Sso::getUserInfo($access_token); $user_id = Model\Ldt\Mission\Sso::handleResponse($user_info); Controller\Mission\Auth::set_auth_uid($user_id); } if (!empty($_SESSION['wx_openid']) && $user_id) { Model_Wechat_User::bind_user($_SESSION['wx_openid'], $user_id); }
static function get_access_token_from_wechat() { $code = self::get_auth_code(); $appid = self::get_appid(); $secret = self::get_appsecret(); $token_url = self::_get_access_token_url($appid, $secret, $code); self::_debug(array("access_token url:", $token_url)); $token_str = self::_fetch_access_token($token_url); if (empty($token_str)) { self::_error("获取 token 失败,返回:null"); _throw("获取 token 失败"); } $token = json_decode($token_str, 1); if (!empty($token['errcode'])) { self::_error("获取 token 失败,result:" . $token_str); _throw(json_encode($token['errmsg'])); } self::_debug(array("get_access_token_from_wechat => access_token", $token)); Model_Session::session_start(); $token["expires"] = time() + $token["expires_in"]; $_SESSION[self::ACCESS_TOKEN_CACHE_KEY] = json_encode($token); return array('access_token' => $token['access_token'], 'openid' => $token['openid'], 'unionid' => empty($token['unionid']) ? null : $token['unionid']); }
static function encrypt_data() { Model_Session::session_start(true); $encrypt = Safe::create_encrypt_info(); $token = self::cache_encrypt_info($encrypt, self::ENCRYPT_EXPIRE_TIME); $encryptData = array('field_name' => self::ENCRYPT_FIELD_NAME, 'field_value' => $token, 'public_key' => $encrypt['public_key']); return $encryptData; }