public function sinalogin() { $loginconfig = FS("Webconfig/loginconfig"); define("WB_AKEY", $loginconfig['sina']['akey']); define("WB_SKEY", $loginconfig['sina']['skey']); define("WB_CALLBACK_URL", "http://" . $_SERVER['HTTP_HOST'] . __APP__ . '/member/oauth/sinalogin'); require C("APP_ROOT") . "Lib/Oauth/sina/saetv2.ex.class.php"; $o = new SaeTOAuthV2(WB_AKEY, WB_SKEY); if (isset($_REQUEST['code'])) { $keys = array(); $keys['code'] = $_REQUEST['code']; $keys['redirect_uri'] = WB_CALLBACK_URL; try { $token = $o->getAccessToken('code', $keys); } catch (OAuthException $e) { } } if (isset($_REQUEST['error_code'])) { if ($_REQUEST['error_code'] == '21330') { $this->redirect(__APP__ . "/member/common/login"); } } if ($token) { $_SESSION['token'] = $token; } else { exit("Error happenned, please try again."); } $sinauser = $o->getUserShow(text($token['uid'])); // $sinauser['name'] = sprintf("%05d",rand(1,99999)); $map['openid'] = text($token['uid']); //唯一ID $map['site'] = 'sina'; $this->appCk($map, $sinauser['name']); //nickname }