|
@@ -27,7 +27,6 @@ class Login extends Controller{
|
|
|
|
|
|
public function doGet() {
|
|
|
$refer = Request::g ( 'referer' );
|
|
|
- print_r($refer);die;
|
|
|
|
|
|
$this->objMemcached->set($this->refer, $refer);
|
|
|
|
|
@@ -46,16 +45,37 @@ class Login extends Controller{
|
|
|
}
|
|
|
|
|
|
public function doCallback() {
|
|
|
- $refer = $this->objMemcached->get($this->refer);
|
|
|
+ $token = $this->objMemcached->get('access_token');
|
|
|
+ $openid = $this->objMemcached->get('openid');
|
|
|
+ $data = array();
|
|
|
+
|
|
|
+ if ($token && $openid) {
|
|
|
+ $url = 'https://api.weixin.qq.com/sns/auth?access_token='.$token.'&openid='.$openid;
|
|
|
+ $result = $this->httpGet($url);
|
|
|
+ $result = json_decode($result, true);
|
|
|
+
|
|
|
+ if ($result['errmsg'] != 'ok') {
|
|
|
+ $token = false;
|
|
|
+ $openid = false;
|
|
|
+ } else {
|
|
|
+ $data['access_token'] = $token;
|
|
|
+ $data['openid'] = $openid;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- print_r($refer);die;
|
|
|
- $code = Request::g ( 'code' );
|
|
|
- $url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$this->appId.'&secret='.$this->appSecret.'&code='.$code.'&grant_type=authorization_code';
|
|
|
+ if (!$token) {
|
|
|
+ $code = Request::g ( 'code' );
|
|
|
+ $url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$this->appId.'&secret='.$this->appSecret.'&code='.$code.'&grant_type=authorization_code';
|
|
|
|
|
|
- $data = $this->httpGet($url);
|
|
|
- $data = json_decode($data, true);
|
|
|
+ $data = $this->httpGet($url);
|
|
|
+ $data = json_decode($data, true);
|
|
|
+ }
|
|
|
|
|
|
if (isset($data['access_token']) && $data['access_token']) {
|
|
|
+
|
|
|
+ $this->objMemcached->set('access_token', $data['access_token']);
|
|
|
+ $this->objMemcached->set('openid', $data['openid']);
|
|
|
+
|
|
|
$url = 'https://api.weixin.qq.com/sns/userinfo?access_token=' . $data['access_token'] . '&openid=' . $data['openid'] . '&lang=zh_CN';
|
|
|
|
|
|
$data = $this->httpGet($url);
|
|
@@ -65,8 +85,6 @@ class Login extends Controller{
|
|
|
if (isset($data['nickname']) && $data['nickname']) {
|
|
|
$refer = $this->objMemcached->get($this->refer);
|
|
|
|
|
|
- print_r($refer);die;
|
|
|
-
|
|
|
$param = $data;
|
|
|
$param['uid'] = $data['openid'];
|
|
|
$refer .= '&' . http_build_url($param);
|