Files
jjx-web/uniCloud-tcb/cloudfunctions/router/service/user/pub/loginByQQ.js
T
2026-10-08 18:18:21 +08:00

56 lines
2.1 KiB
JavaScript

module.exports = {
/**
* QQ授权登录
* @url user/pub/loginByQQ 前端调用的url参数地址
* data 请求参数 说明
* @param {String} code QQ小程序登录返回的code
* @param {String} accessToken QQ APP登录返回的access_token
* @param {String} type login:登录 register:注册
* res 返回参数说明
* @param {Number} code 错误码,0表示成功
* @param {String} msg 详细信息
* @param {String} token 登录成功之后返回的token信息
* @param {String} tokenExpired token过期时间
*/
main: async (event) => {
let { data = {}, util, originalParam } = event;
let { uniID, config, pubFun, vk, db, _ } = util;
let { uid, accountType, code } = data;
let res = {};
// 业务逻辑开始-----------------------------------------------------------
let custom = {
accountType: parseInt(accountType),
nickname: `QQ用户` + vk.pubfn.random(6)
};
// res = await uniID.loginByQQ({
// code,
// accessToken,
// type,
// myInviteCode,
// needPermission
// });
const redirect_uri = 'http://static-mp-0737e52b-fffa-4223-bcdf-d4ad3d9968a5.next.bspapp.com/#/pages/auth/login/qq'
const qqRes = await vk.request({
url: `https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&client_id=101795826&client_secret=1a41633966fb97cefea512f6c8601638&code=${code}&redirect_uri=` + encodeURIComponent(redirect_uri),
method: 'GET',
})
if (qqRes.access_token) {
const qqUserRes = await vk.request({
url: `https://graph.qq.com/oauth2.0/me?access_token=${qqRes.access_token}`,
method: 'GET',
})
if (qqUserRes.openid) {
const userByQQOpenid = await vk.baseDao.findByWhereJson({
dbName: "uni-id-users",
whereJson: {
"qq.openid": qqUserRes.openid
}
})
}
}
// 业务逻辑结束-----------------------------------------------------------
return res;
}
}