56 lines
2.1 KiB
JavaScript
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;
|
|
}
|
|
}
|