Пример #1
0
 static function logout()
 {
     Model_Session::session_start(true);
     session_destroy();
     unset($_SESSION[self::AUTH_LOGIN_SEESION_KEY]);
     unset($_SESSION['safe_logined']);
 }
Пример #2
0
<?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);
}
Пример #3
0
 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']);
 }
Пример #4
0
 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;
 }