You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

125 lines
3.3 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
namespace app\base\controller\mpqq\api;
use app\base\model\mpqq\MpqqUser;
use think\App;
class Auth extends Base
{
/**
* 微信小程序 wx.login
* @date 2021-07-01
*/
public function getOpenid()
{
$code = input('post.code');
$qq_param = get_mp_qq_config();
$mpqq_user_model = new MpqqUser();
$jwt_class = new \jwt\Jwt();
$auth_class = new \tencent\qq\Auth($qq_param);
//获取微信小程序用户信息
$res = $auth_class->getOpenid($code);
if (empty($res['openid'])) {
return sendErrorMessage(4001, '授权失败');
}
//更新小程序用户信息表
$user_info = [
'uid' => UID,
'openid' => $res['openid'],
'unionid' => isset($res['unionid']) ? $res['unionid'] : '',
'session_key' => isset($res['session_key']) ? $res['session_key'] : '',
'session_key_time' => time(),
];
$res = $mpqq_user_model->updateUser($user_info);
//获取用户信息
$mpqq_user = $mpqq_user_model->getOneData([
['openid', '=', $user_info['openid']]
], 'id,user_id,openid');
//获取token
$info = [
'uid' => UID,
'openid' => $mpqq_user['openid'],
'mpqq_user_id' => $mpqq_user['id'],
'user_id' => $mpqq_user['user_id'],
];
$res_token = $jwt_class->signToken($info);
$r_data = $info;
$r_data['access_token'] = $res_token['token'];
$r_data['access_token_expire_time'] = $res_token['exp'];
return sendSuccessMessage($r_data);
}
/**
* 平台用户信息更新
* @date 2021-07-01
*/
public function userInfoUpdate()
{
$param = input('post.');
$mpqq_user_model = new MpqqUser();
$data = [
'uid' => UID,
'openid' => OPENID,
'nickname' => $param['nickname'],
'headimgurl' => $param['headimgurl'],
'gender' => $param['gender'],
'country' => $param['country'],
'province' => $param['province'],
'city' => $param['city'],
'language' => $param['language']
];
$res = $mpqq_user_model->updateUser($data);
if (!$res) {
return sendErrorMessage(4001, '更新信息失败');
}
return sendSuccessMessage();
}
/**
* 微信小程序 通过openid获取信息一般用于测试openid或access_token过期后重新获取
* @date 2021-07-01
*/
public function getUserByOpenid()
{
$openid = input('post.openid');
$mpqq_user_model = new MpqqUser();
$jwt_class = new \jwt\Jwt();
//获取用户信息
$mpqq_user = $mpqq_user_model->getOneData([
['openid', '=', $openid]
], 'id,user_id,openid');
//获取token
$info = [
'uid' => UID,
'openid' => $mpqq_user['openid'],
'mpqq_user_id' => $mpqq_user['id'],
'user_id' => $mpqq_user['user_id'],
];
$res_token = $jwt_class->signToken($info);
$r_data = $info;
$r_data['access_token'] = $res_token['token'];
$r_data['access_token_expire_time'] = $res_token['exp'];
return sendSuccessMessage($r_data);
}
}