forked from cashgithubs/Project
/
oauthlogin.class.php
executable file
·104 lines (95 loc) · 2.62 KB
/
oauthlogin.class.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<?php
define(MOD_UNIQUEID,'oauthlogin');
class oauthlogin extends BaseFrm
{
public function __construct()
{
parent::__construct();
include_once(CUR_CONF_PATH . 'lib/oauth.php');
include_once(CUR_CONF_PATH . 'lib/share.class.php');
$this->obj = new share();
include_once(CUR_CONF_PATH . 'public.class.php');
$this->pub = new publicapi();
}
public function __destruct()
{
parent::__destruct();
}
/**
* 根据系统id,分享平台id
* @name share
* @access public
* @author
* @category hogesoft
* @copyright hogesoft
* @return
*/
public function oauthlogin($appid,$platid,$access_plat_token='')
{
$dataarr = array();
$type = $this->user['visit_client'];
if($access_plat_token)
{
$check_result = $this->pub->share_check_token($access_plat_token,$appid,$platid);
}
if(empty($appid) || empty($platid))
{
return 'NO_APP';
}
if($platdata = $this->obj->get_by_app_plat($appid,$platid))
{
$action = $this->settings['share_plat'][$platdata['type']]['name'].'_oauthlogin';
$ret = $this->$action($platdata,$type);
$dataarr['oauth_url'] = urlencode($ret);
//生成新token
if(!$access_plat_token || $check_result['msg'] == 'new')
{
$dataarr['access_plat_token'] = mk_token();
$this->obj->inserttoken($appid,$platdata['id'],$dataarr['access_plat_token'],'','');
}
else
{
$dataarr['access_plat_token'] = $access_plat_token;
}
$dataarr['sync_third_auth'] = $this->settings['sync_third_url']['host'].$this->settings['sync_third_url']['dir'].'index.php';
return $dataarr;
}
else
{
return 'NO_PLAT_DATA';
}
}
public function sinaweibo_oauthlogin($platdata, $wap = '')
{
$loginurl = trim($this->public_oauthlogin($platdata),'/').($wap?'&display=mobile':'');
$loginurl .= "&forcelogin=true";
return $loginurl;
}
public function public_oauthlogin($platdata, $wap = '')
{
$o = new Oauth($platdata['akey'],$platdata['skey'],$platdata['oauthurl'],$platdata['shareurl'],$platdata['callback'],$platdata['userurl'],$platdata['response_type']);
$loginurl = $o->getAuthorizeURL();
return $loginurl;
}
//腾讯微博
public function txweibo_oauthlogin($platdata, $wap = '')
{
return trim($this->public_oauthlogin($platdata),'/').'&wap=2';
}
//人人
public function renren_oauthlogin($platdata, $wap = '')
{
return trim($this->public_oauthlogin($platdata),'/').'&scope=publish_blog';
}
//豆瓣
public function douban_oauthlogin($platdata, $wap = '')
{
return $this->public_oauthlogin($platdata);
}
//网易微博
public function wangyi_oauthlogin($platdata, $wap = '')
{
return $this->public_oauthlogin($platdata);
}
}
?>