Login.php
3.0 KB
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
<?php
namespace app\api\controller;
use app\common\controller\Api;
use app\common\model\User as UserModel;
use app\common\model\UserToken;
/**
* 登录接口
*/
class Login extends Api
{
protected $noNeedLogin = ['*'];
protected $noNeedRight = '*';
public function _initialize()
{
parent::_initialize();
}
/**
* 登录接口
*
*/
public function index()
{
$this->success('');
}
/**
* @ApiTitle (登录接口-小程序登录)
* @ApiSummary (小程序登录)
* @ApiMethod (POST)
* @ApiRoute (/api/login/login_sign)
* @ApiParams (name="code", type="string", required=true, description="code")
* @ApiParams (name="mobile", type="int", required=true, description="用户手机号")
* @ApiParams (name="avatar", type="string", required=true, description="用户头像")
* @ApiReturnParams (name="code", type="integer", required=true, sample="0")
* @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功")
* @ApiReturn ({
'code':'1',
'msg':'返回成功',
"data":{
"token":"用户token"
}
})
*/
public function login_sign()
{
$param = $this->request->param();
//授权登录
$ch = curl_init();
$appid = "wx9fff7b42aede19e4";
$secret = "97f23d67dc029b2b2244637e7b47bb8b";
$code = $param['code'];
$url = "https://api.weixin.qq.com/sns/jscode2session?appid=$appid&secret=$secret&js_code=$code&grant_type=authorization_code";
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$output = curl_exec($ch);
if ($output === FALSE) {
echo "CURL Error:" . curl_error($ch);
}
curl_close($ch);
$curl_result = json_decode($output, true);
//把openid保存到数据库中
$model = new UserToken();
$model2 = new UserModel();
$user = $model::get(['open_id' => $curl_result['openid']]);
if (!$user) {
$model->save(['open_id' => $curl_result['openid']]);
$user2 = $model::get(['open_id' => $curl_result['openid']]);
$model2->save(['user_id' => $user2['id']]);
}
$user_up = $model::get(['open_id' => $curl_result['openid']]);
$model2->save(['avatar' => $param['avatar'], 'mobile' => $param['mobile']], ['id' => $user_up['id']]);
$token = $this->request->token();
$user_open = $model::get(['open_id' => $curl_result['openid']]);
$model->save(['token' => $token], ['open_id' => $user_open['open_id']]);
$return = [
'token' => $token,
];
$this->success('成功', $return);
}
}