110 lines
4.1 KiB
TypeScript
110 lines
4.1 KiB
TypeScript
import { Node, UIOpacity, _decorator, tween } from 'cc';
|
||
import BaseAppInit from '../../../extensions/app/assets/base/BaseAppInit';
|
||
import { httpRequest, LOGIN_TOKEN } from '../../res-native/network/HttpRequest';
|
||
import { Tools } from '../../res-native/tools/Tools';
|
||
const { ccclass, property } = _decorator;
|
||
|
||
@ccclass('AppInit')
|
||
export class AppInit extends BaseAppInit {
|
||
@property(Node)
|
||
private logo: Node;
|
||
|
||
/**
|
||
* 获得用户资源总量,这里返回几,就需要用户自行调用几次nextInit
|
||
*/
|
||
protected getUserAssetNum(): number {
|
||
return 1;
|
||
}
|
||
|
||
protected onLoad() {
|
||
//this.initToken();
|
||
|
||
// if (LOGIN_TOKEN.access_token == "" || LOGIN_TOKEN.access_token == undefined) {
|
||
// return
|
||
// }
|
||
|
||
let str = window.location.search.slice(1)
|
||
const pairs = str.split('&');
|
||
const params: { [key: string]: string } = {};
|
||
pairs.forEach(pair => {
|
||
const [key, value] = pair.split('=');
|
||
params[decodeURIComponent(key)] = decodeURIComponent(value || '');
|
||
});
|
||
|
||
Tools.httpReq("mini-games/auth/login", {token:params.token}, (res:any) => {
|
||
LOGIN_TOKEN.setToken(res.token, res.token, "https://www.tab66aud.com", "en")
|
||
//USERDATA.setUserData(res);
|
||
this.nextInit();
|
||
})
|
||
|
||
// Tools.httpReq("login", {token:"devtestaud", password:"password123"}, (res:any) => {
|
||
// //USERDATA.setUserData(res);
|
||
// LOGIN_TOKEN.setToken(res.token, res.token, "https://www.tab66aud.com", "en")
|
||
// httpRequest.get("/api/me/profile" , (res:any) => {
|
||
// let token = res.sso_url.mini_game_angpau
|
||
// token = token.match(/token=([^&]*)/)?.[1];
|
||
// Tools.httpReq("mini-games/auth/login", {token:token}, (res:any) => {
|
||
// //USERDATA.setUserData(res);
|
||
// this.nextInit();
|
||
// })
|
||
// })
|
||
// })
|
||
|
||
// // 执行初始化操作
|
||
// const opacity = this.logo.getComponent(UIOpacity);
|
||
// opacity.opacity = 0;
|
||
|
||
// tween(opacity)
|
||
// .to(0.5, { opacity: 255 })
|
||
// .delay(1)
|
||
// .to(0.5, { opacity: 0 })
|
||
// .call(() => {
|
||
// Tools.httpReq("login", {username:"devtestaud", password:"password123"}, (res:any) => {
|
||
// //USERDATA.setUserData(res);
|
||
// LOGIN_TOKEN.setToken(res.token, res.token, "https://www.tab66aud.com", "en")
|
||
// httpRequest.get("/api/me/profile" , (res:any) => {
|
||
// let token = res.sso_url.mini_game_angpau
|
||
// token = token.match(/token=([^&]*)/)?.[1];
|
||
// Tools.httpReq("mini-games/auth/login", {token:token}, (res:any) => {
|
||
// //USERDATA.setUserData(res);
|
||
// this.nextInit();
|
||
// })
|
||
// })
|
||
// })
|
||
|
||
// //this.nextInit();
|
||
// })
|
||
// .start();
|
||
}
|
||
|
||
/** 根据参数初始化TOKEN */
|
||
initToken(){
|
||
let str = window.location.search.slice(1)
|
||
const pairs = str.split('&');
|
||
const params: { [key: string]: string } = {};
|
||
pairs.forEach(pair => {
|
||
const [key, value] = pair.split('=');
|
||
params[decodeURIComponent(key)] = decodeURIComponent(value || '');
|
||
});
|
||
|
||
const at = Tools.parseJWT(params.access_token)
|
||
const actualKey = 'xyxfz83d'.substring(0, 8); // 取前8个字符
|
||
// 解密appkey
|
||
const appkey = Tools.desEcbDecrypt(at.extend.channel, actualKey);
|
||
|
||
// 如果解密失败,尝试原始值
|
||
if (!appkey) {
|
||
console.log('Failed to decrypt token, using original value');
|
||
}
|
||
|
||
LOGIN_TOKEN.setToken(params.access_token, params.refresh_token, at.extend.app_id, appkey)
|
||
}
|
||
|
||
// BaseAppInit中使用start方法作为初始化入口,如果重写start方法,请注意调用父类方法
|
||
// protected start() { }
|
||
|
||
protected onFinish() {
|
||
// 执行完成操作
|
||
this.node.destroy();
|
||
}
|
||
} |