| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- import { serverLoginApi } from "../../../api/auth.api";
- import DnSdk from "../../../lib/DnSdk.js";
- import UserInfoModel, { UserInfoInterface } from "../../../store/models/user.model";
- import { silentLogin } from "../wechat/wechat-auth";
- import { to } from "../../../utils/helper";
- import URLQueryModel from "../../../store/models/urlQuery.model";
- /**
- * 服务端登录
- * @param wxloginInfo 微信登录信息
- * @returns Promise
- */
- export const serverLogin = (wxloginInfo) => {
- return new Promise(async (resolve, reject) => {
- // 获取链接上的参数
- const urlQuery = URLQueryModel.getInstance().get()
- let params = {
- channel: "wxxyx",
- code: wxloginInfo.code,
- gdt_vid: urlQuery.gdt_vid,
- weixinadinfo: urlQuery.weixinadinfo,
- };
- const serverLoginRes: UserInfoInterface = await serverLoginApi(params)
- //用户态存缓存下次进游戏可以直接拿
- UserInfoModel.getInstance().save(serverLoginRes);
- // 弹框公告
- if (serverLoginRes.pop_content) {
- wx.showModal({
- title: serverLoginRes.pop_title ? serverLoginRes.pop_title : "登录提示",
- content: serverLoginRes.pop_content,
- complete(res) {
- console.log(res);
- },
- });
- }
- // 腾讯广告小游戏SDK设置openid
- const dSdk = DnSdk.getInstance();
- dSdk.setOpenId(serverLoginRes.openid);
- if (serverLoginRes.is_first_login) {
- // 是否新用户
- dSdk.onRegister();
- } else if (serverLoginRes.is_reactive_user) {
- // 是否回归用户
- dSdk.track("RE_ACTIVE");
- }
- resolve(serverLoginRes);
- });
- };
- /**
- * @description: 重新登录
- * @return {*}
- */
- export const relogin = async () => {
- let err, res;
- //静默授权
- [err, res] = await to(silentLogin());
- if (err) {
- return Promise.reject(err);
- }
- [err, res] = await to(serverLogin(res));
- if (err) {
- return Promise.reject(err);
- }
- return Promise.resolve();
- };
|