/** * 获取登录信息 */ var rtcroom = require('./utils/rtcroom.js'); var liveroom = require('./utils/liveroom.js'); var config = require('./config.js'); // 获取微信登录信息,用于获取openid function getLoginInfo(options) { wx.login({ success: function (res) { if (res.code) { console.log('获取code成功',res.code); options.code = res.code; // 获取用户信息 wx.getUserInfo({ withCredentials: false, success: function (ret) { options.userName = ret.userInfo.nickName; proto_getLoginInfo(options); }, fail: function() { proto_getLoginInfo(options); } }); } else { console.log('获取用户登录态失败!' + res.errMsg); options.fail && options.fail({ errCode: -1, errMsg: '获取用户登录态失败,请退出重试' }); } }, fail: function () { console.log('获取用户登录态失败!' + res.errMsg); if (ret.errMsg == 'request:fail timeout') { var errCode = -1; var errMsg = '网络请求超时,请检查网络状态'; } options.fail && options.fail({ errCode: errCode || -1, errMsg: errMsg || '获取用户登录态失败,请退出重试' }); } }); } // 调用后台获取登录信息接口 function proto_getLoginInfo(options) { wx.request({ url: config.serverUrl + '/weapp/utils/get_login_info', data: { userIDPrefix: 'weixin', code: options.code }, method: 'GET', header: { 'content-type': 'application/json' // 默认值 }, success: function (ret) { if (ret.data.code) { console.log('获取登录信息失败,调试期间请点击右上角三个点按钮,选择打开调试'); options.fail && options.fail({ errCode: ret.data.code, errMsg: ret.data.message + '[' + ret.data.code + ']' }); return; } console.log('获取IM登录信息成功: ', ret.data); ret.data.serverDomain = config.roomServiceUrl + '/weapp/' + options.type + '/'; ret.data.userName = options.userName; switch (options.type) { case 'multi_room': { rtcroom.login({ data: ret.data, success: options.success, fail: options.fail }); break; } case 'double_room': { rtcroom.login({ data: ret.data, success: options.success, fail: options.fail }); break; } case 'live_room': { liveroom.login({ data: ret.data, success: options.success, fail: options.fail }); break; } } }, fail: function (ret) { console.log('获取IM登录信息失败: ', ret); if (ret.errMsg == 'request:fail timeout') { var errCode = -1; var errMsg = '网络请求超时,请检查网络状态'; } options.fail && options.fail({ errCode: errCode || -1, errMsg: errMsg || '获取登录信息失败,调试期间请点击右上角三个点按钮,选择打开调试' }); } }); } module.exports = { getLoginInfo: getLoginInfo };