cgserver 8.9.3 → 8.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/lib/Framework/AI/AiObject.js +10 -10
- package/dist/lib/Framework/AI/Astar.js +133 -133
- package/dist/lib/Framework/AI/BehaviorAI.js +307 -307
- package/dist/lib/Framework/AI/Entity.js +33 -33
- package/dist/lib/Framework/AI/Point.js +68 -68
- package/dist/lib/Framework/AI/TriggerMgr.js +201 -201
- package/dist/lib/Framework/Config/Config.js +53 -53
- package/dist/lib/Framework/Config/DbConfig.js +14 -14
- package/dist/lib/Framework/Config/FrameworkConfig.js +207 -207
- package/dist/lib/Framework/Config/IServerConfig.js +26 -26
- package/dist/lib/Framework/Config/_error_.js +35 -35
- package/dist/lib/Framework/Core/Core.js +665 -639
- package/dist/lib/Framework/Core/Timer.js +116 -116
- package/dist/lib/Framework/Database/Decorator/AutoIncrement.js +11 -11
- package/dist/lib/Framework/Database/Decorator/DBCache.js +64 -64
- package/dist/lib/Framework/Database/Decorator/NotNull.js +11 -11
- package/dist/lib/Framework/Database/Decorator/PrimaryKey.js +11 -11
- package/dist/lib/Framework/Database/Decorator/Property.js +61 -61
- package/dist/lib/Framework/Database/Decorator/Table.js +15 -15
- package/dist/lib/Framework/Database/Decorator/Type.js +20 -20
- package/dist/lib/Framework/Database/MSSqlManager.js +53 -53
- package/dist/lib/Framework/Database/MongoBaseService.js +117 -117
- package/dist/lib/Framework/Database/MongoManager.js +467 -467
- package/dist/lib/Framework/Database/MysqlBaseService.js +281 -281
- package/dist/lib/Framework/Database/MysqlManager.js +179 -179
- package/dist/lib/Framework/Database/RedisManager.js +61 -61
- package/dist/lib/Framework/Decorator/AdminValidate.js +19 -19
- package/dist/lib/Framework/Decorator/AuthorityValidate.js +22 -22
- package/dist/lib/Framework/Decorator/CreatorValidate.js +19 -19
- package/dist/lib/Framework/Decorator/JsonAdminValidate.js +15 -15
- package/dist/lib/Framework/Decorator/JsonAuthorityValidate.js +20 -20
- package/dist/lib/Framework/Decorator/JsonCreatorValidate.js +19 -19
- package/dist/lib/Framework/Decorator/SyncCall.js +42 -42
- package/dist/lib/Framework/Decorator/SyncCallServer.js +77 -77
- package/dist/lib/Framework/Logic/CacheTool.js +73 -73
- package/dist/lib/Framework/Logic/EventTool.js +27 -27
- package/dist/lib/Framework/Logic/HttpTool.js +75 -75
- package/dist/lib/Framework/Logic/Log.js +140 -140
- package/dist/lib/Framework/Logic/SyncQueueTool.js +43 -43
- package/dist/lib/Framework/Service/MongoAccountService.js +367 -367
- package/dist/lib/Framework/Service/MongoCacheService.js +42 -42
- package/dist/lib/Framework/Service/MongoUserService.js +100 -100
- package/dist/lib/Framework/Service/MysqlAccountService.js +441 -441
- package/dist/lib/Framework/Service/MysqlUserService.js +171 -171
- package/dist/lib/Framework/Service/ini.js +36 -36
- package/dist/lib/Framework/SocketServer/IClientWebSocket.js +44 -44
- package/dist/lib/Framework/SocketServer/IRpc.js +12 -12
- package/dist/lib/Framework/SocketServer/IRpcClientWebSocket.js +63 -63
- package/dist/lib/Framework/SocketServer/IRpcServerWebSocket.js +63 -63
- package/dist/lib/Framework/SocketServer/IServerWebSocket.js +75 -75
- package/dist/lib/Framework/SocketServer/ISocketServer.js +205 -205
- package/dist/lib/Framework/SocketServer/IWebSocket.js +195 -195
- package/dist/lib/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.js +57 -57
- package/dist/lib/Framework/SocketServer/ProtoFilter/IProtoFilter.js +8 -8
- package/dist/lib/Framework/SocketServer/ProtoFilter/JsonProtoFilter.js +29 -29
- package/dist/lib/Framework/SocketServer/ProtoFilter/ProtoFactory.js +31 -31
- package/dist/lib/Framework/ThirdParty/AlipayTool.js +203 -203
- package/dist/lib/Framework/ThirdParty/Alisms.js +46 -46
- package/dist/lib/Framework/ThirdParty/AppleTool.js +234 -234
- package/dist/lib/Framework/ThirdParty/CgMq.js +132 -132
- package/dist/lib/Framework/ThirdParty/EmailTool.js +33 -33
- package/dist/lib/Framework/ThirdParty/OpenSocial.js +32 -32
- package/dist/lib/Framework/ThirdParty/QQTool.js +118 -118
- package/dist/lib/Framework/ThirdParty/QiniuTool.js +21 -21
- package/dist/lib/Framework/ThirdParty/Rpc.js +63 -63
- package/dist/lib/Framework/ThirdParty/WechatOATool.js +61 -61
- package/dist/lib/Framework/ThirdParty/WechatTool.js +74 -74
- package/dist/lib/Framework/WebServer/Controller/BaseController.js +112 -112
- package/dist/lib/Framework/WebServer/Controller/MongoBaseUserController.js +169 -169
- package/dist/lib/Framework/WebServer/Controller/MysqlBaseUserController.js +169 -169
- package/dist/lib/Framework/WebServer/Engine/ControllerManager.js +112 -112
- package/dist/lib/Framework/WebServer/Engine/Engine.js +152 -152
- package/dist/lib/Framework/WebServer/Engine/RazorJs.js +544 -544
- package/dist/lib/Framework/WebServer/Engine/Request.js +237 -237
- package/dist/lib/Framework/WebServer/Engine/Response.js +100 -100
- package/dist/lib/Framework/WebServer/IWebServer.js +59 -59
- package/dist/lib/Framework/cgserver.js +121 -121
- package/dist/lib/Framework/index.js +202 -202
- package/dist/lib/test/test.js +21 -21
- package/dist/types/Framework/AI/AiObject.d.ts +5 -5
- package/dist/types/Framework/AI/Astar.d.ts +38 -38
- package/dist/types/Framework/AI/BehaviorAI.d.ts +24 -24
- package/dist/types/Framework/AI/Entity.d.ts +12 -12
- package/dist/types/Framework/AI/Point.d.ts +17 -17
- package/dist/types/Framework/AI/TriggerMgr.d.ts +52 -52
- package/dist/types/Framework/Config/Config.d.ts +12 -12
- package/dist/types/Framework/Config/DbConfig.d.ts +10 -10
- package/dist/types/Framework/Config/FrameworkConfig.d.ts +203 -203
- package/dist/types/Framework/Config/IServerConfig.d.ts +9 -9
- package/dist/types/Framework/Config/_error_.d.ts +99 -99
- package/dist/types/Framework/Core/Core.d.ts +111 -108
- package/dist/types/Framework/Core/Timer.d.ts +16 -16
- package/dist/types/Framework/Database/Decorator/AutoIncrement.d.ts +1 -1
- package/dist/types/Framework/Database/Decorator/DBCache.d.ts +23 -23
- package/dist/types/Framework/Database/Decorator/NotNull.d.ts +1 -1
- package/dist/types/Framework/Database/Decorator/PrimaryKey.d.ts +1 -1
- package/dist/types/Framework/Database/Decorator/Property.d.ts +57 -57
- package/dist/types/Framework/Database/Decorator/Table.d.ts +1 -1
- package/dist/types/Framework/Database/Decorator/Type.d.ts +1 -1
- package/dist/types/Framework/Database/MSSqlManager.d.ts +27 -27
- package/dist/types/Framework/Database/MongoBaseService.d.ts +81 -81
- package/dist/types/Framework/Database/MongoManager.d.ts +155 -155
- package/dist/types/Framework/Database/MysqlBaseService.d.ts +34 -34
- package/dist/types/Framework/Database/MysqlManager.d.ts +53 -53
- package/dist/types/Framework/Database/RedisManager.d.ts +24 -24
- package/dist/types/Framework/Decorator/AdminValidate.d.ts +1 -1
- package/dist/types/Framework/Decorator/AuthorityValidate.d.ts +2 -2
- package/dist/types/Framework/Decorator/CreatorValidate.d.ts +1 -1
- package/dist/types/Framework/Decorator/JsonAdminValidate.d.ts +1 -1
- package/dist/types/Framework/Decorator/JsonAuthorityValidate.d.ts +2 -2
- package/dist/types/Framework/Decorator/JsonCreatorValidate.d.ts +1 -1
- package/dist/types/Framework/Decorator/SyncCall.d.ts +12 -12
- package/dist/types/Framework/Decorator/SyncCallServer.d.ts +14 -14
- package/dist/types/Framework/Logic/CacheTool.d.ts +27 -27
- package/dist/types/Framework/Logic/EventTool.d.ts +13 -13
- package/dist/types/Framework/Logic/HttpTool.d.ts +15 -15
- package/dist/types/Framework/Logic/Log.d.ts +25 -25
- package/dist/types/Framework/Logic/SyncQueueTool.d.ts +21 -21
- package/dist/types/Framework/Service/MongoAccountService.d.ts +69 -69
- package/dist/types/Framework/Service/MongoCacheService.d.ts +14 -14
- package/dist/types/Framework/Service/MongoUserService.d.ts +35 -35
- package/dist/types/Framework/Service/MysqlAccountService.d.ts +74 -74
- package/dist/types/Framework/Service/MysqlUserService.d.ts +33 -33
- package/dist/types/Framework/Service/ini.d.ts +29 -29
- package/dist/types/Framework/SocketServer/IClientWebSocket.d.ts +17 -17
- package/dist/types/Framework/SocketServer/IRpc.d.ts +8 -8
- package/dist/types/Framework/SocketServer/IRpcClientWebSocket.d.ts +16 -16
- package/dist/types/Framework/SocketServer/IRpcServerWebSocket.d.ts +16 -16
- package/dist/types/Framework/SocketServer/IServerWebSocket.d.ts +28 -28
- package/dist/types/Framework/SocketServer/ISocketServer.d.ts +45 -45
- package/dist/types/Framework/SocketServer/IWebSocket.d.ts +60 -60
- package/dist/types/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.d.ts +9 -9
- package/dist/types/Framework/SocketServer/ProtoFilter/IProtoFilter.d.ts +9 -9
- package/dist/types/Framework/SocketServer/ProtoFilter/JsonProtoFilter.d.ts +6 -6
- package/dist/types/Framework/SocketServer/ProtoFilter/ProtoFactory.d.ts +8 -8
- package/dist/types/Framework/ThirdParty/AlipayTool.d.ts +109 -109
- package/dist/types/Framework/ThirdParty/Alisms.d.ts +14 -14
- package/dist/types/Framework/ThirdParty/AppleTool.d.ts +131 -131
- package/dist/types/Framework/ThirdParty/CgMq.d.ts +51 -51
- package/dist/types/Framework/ThirdParty/EmailTool.d.ts +5 -5
- package/dist/types/Framework/ThirdParty/OpenSocial.d.ts +7 -7
- package/dist/types/Framework/ThirdParty/QQTool.d.ts +41 -41
- package/dist/types/Framework/ThirdParty/QiniuTool.d.ts +6 -6
- package/dist/types/Framework/ThirdParty/Rpc.d.ts +20 -20
- package/dist/types/Framework/ThirdParty/WechatOATool.d.ts +13 -13
- package/dist/types/Framework/ThirdParty/WechatTool.d.ts +20 -20
- package/dist/types/Framework/WebServer/Controller/BaseController.d.ts +33 -33
- package/dist/types/Framework/WebServer/Controller/MongoBaseUserController.d.ts +27 -27
- package/dist/types/Framework/WebServer/Controller/MysqlBaseUserController.d.ts +27 -27
- package/dist/types/Framework/WebServer/Engine/ControllerManager.d.ts +35 -35
- package/dist/types/Framework/WebServer/Engine/Engine.d.ts +22 -21
- package/dist/types/Framework/WebServer/Engine/RazorJs.d.ts +21 -21
- package/dist/types/Framework/WebServer/Engine/Request.d.ts +36 -35
- package/dist/types/Framework/WebServer/Engine/Response.d.ts +30 -30
- package/dist/types/Framework/WebServer/IWebServer.d.ts +20 -20
- package/dist/types/Framework/cgserver.d.ts +27 -27
- package/dist/types/Framework/index.d.ts +91 -91
- package/dist/types/test/test.d.ts +1 -1
- package/package.json +1 -1
- package/dist/lib/Framework/WebServer/Decorator/AdminValidate.js +0 -19
- package/dist/lib/Framework/WebServer/Decorator/AuthorityValidate.js +0 -22
- package/dist/lib/Framework/WebServer/Decorator/CreatorValidate.js +0 -19
- package/dist/lib/Framework/WebServer/Decorator/JsonAdminValidate.js +0 -15
- package/dist/lib/Framework/WebServer/Decorator/JsonAuthorityValidate.js +0 -20
- package/dist/lib/Framework/WebServer/Decorator/JsonCreatorValidate.js +0 -19
- package/dist/lib/Framework/WebServer/Decorator/SyncCall.js +0 -41
- package/dist/lib/Framework/WebServer/Decorator/SyncCallServer.js +0 -77
- package/dist/types/Framework/WebServer/Decorator/AdminValidate.d.ts +0 -1
- package/dist/types/Framework/WebServer/Decorator/AuthorityValidate.d.ts +0 -2
- package/dist/types/Framework/WebServer/Decorator/CreatorValidate.d.ts +0 -1
- package/dist/types/Framework/WebServer/Decorator/JsonAdminValidate.d.ts +0 -1
- package/dist/types/Framework/WebServer/Decorator/JsonAuthorityValidate.d.ts +0 -2
- package/dist/types/Framework/WebServer/Decorator/JsonCreatorValidate.d.ts +0 -1
- package/dist/types/Framework/WebServer/Decorator/SyncCall.d.ts +0 -12
- package/dist/types/Framework/WebServer/Decorator/SyncCallServer.d.ts +0 -14
|
@@ -1,132 +1,132 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CgMq = exports.CgMqConfig = exports.CgMqRetMsg = void 0;
|
|
4
|
-
const Core_1 = require("../Core/Core");
|
|
5
|
-
const Log_1 = require("../Logic/Log");
|
|
6
|
-
const IRpcServerWebSocket_1 = require("../SocketServer/IRpcServerWebSocket");
|
|
7
|
-
const IRpc_1 = require("../SocketServer/IRpc");
|
|
8
|
-
//接受到的消息无需basemsg部分
|
|
9
|
-
class CgMqMsg extends IRpc_1.RpcBaseMsg {
|
|
10
|
-
/**
|
|
11
|
-
* 必填,目的身份
|
|
12
|
-
*/
|
|
13
|
-
to_identity = "";
|
|
14
|
-
/**
|
|
15
|
-
* 消息携带的数据
|
|
16
|
-
*/
|
|
17
|
-
data = null;
|
|
18
|
-
}
|
|
19
|
-
class CgMqRetMsg extends CgMqMsg {
|
|
20
|
-
/**
|
|
21
|
-
* 发送者身份
|
|
22
|
-
*/
|
|
23
|
-
from_identity = "";
|
|
24
|
-
/**
|
|
25
|
-
* audience 数量
|
|
26
|
-
*/
|
|
27
|
-
count = 0;
|
|
28
|
-
}
|
|
29
|
-
exports.CgMqRetMsg = CgMqRetMsg;
|
|
30
|
-
class CgMqServerWebsocket extends IRpcServerWebSocket_1.IRpcServerWebSocket {
|
|
31
|
-
_cgmq = null;
|
|
32
|
-
/**
|
|
33
|
-
* 自己的身份
|
|
34
|
-
*/
|
|
35
|
-
_identity = "";
|
|
36
|
-
constructor(cgmq) {
|
|
37
|
-
super();
|
|
38
|
-
this._cgmq = cgmq;
|
|
39
|
-
this._identity = this._cgmq.cfg.identity;
|
|
40
|
-
this._debug_msg = true;
|
|
41
|
-
}
|
|
42
|
-
onOpen(e) {
|
|
43
|
-
this.init(this._cgmq.cfg.identity);
|
|
44
|
-
}
|
|
45
|
-
async init(identity) {
|
|
46
|
-
let msg = this.getNewMsg("init");
|
|
47
|
-
msg.identity = identity;
|
|
48
|
-
let jsonData = await this.callRemote(msg);
|
|
49
|
-
return jsonData;
|
|
50
|
-
}
|
|
51
|
-
async push(to_identity, data) {
|
|
52
|
-
let msg = this.getNewMsg("msg");
|
|
53
|
-
msg.to_identity = to_identity;
|
|
54
|
-
msg.data = data;
|
|
55
|
-
let jsonData = await this.callRemote(msg);
|
|
56
|
-
return jsonData;
|
|
57
|
-
}
|
|
58
|
-
async receive_msg(msg) {
|
|
59
|
-
let data = await this._cgmq.onMsg(msg);
|
|
60
|
-
msg.data = data;
|
|
61
|
-
msg.__return = true;
|
|
62
|
-
msg.to_identity = msg.from_identity;
|
|
63
|
-
msg.from_identity = this._identity;
|
|
64
|
-
this.send(msg);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
class CgMqConfig {
|
|
68
|
-
identity = "";
|
|
69
|
-
host = "";
|
|
70
|
-
port = -1;
|
|
71
|
-
}
|
|
72
|
-
exports.CgMqConfig = CgMqConfig;
|
|
73
|
-
class CgMq {
|
|
74
|
-
_ws = null;
|
|
75
|
-
_inited = false;
|
|
76
|
-
_cfg = null;
|
|
77
|
-
_onmsg = null;
|
|
78
|
-
get cfg() {
|
|
79
|
-
return this._cfg;
|
|
80
|
-
}
|
|
81
|
-
get identity() {
|
|
82
|
-
return this._cfg?.identity;
|
|
83
|
-
}
|
|
84
|
-
async init(cfg, onmsg) {
|
|
85
|
-
if (!cfg) {
|
|
86
|
-
return false;
|
|
87
|
-
}
|
|
88
|
-
this._cfg = cfg;
|
|
89
|
-
this._onmsg = onmsg;
|
|
90
|
-
if (this._inited) {
|
|
91
|
-
Log_1.GLog.error("dulplicate init for CgMq");
|
|
92
|
-
return true;
|
|
93
|
-
}
|
|
94
|
-
this._inited = true;
|
|
95
|
-
if (!this._ws) {
|
|
96
|
-
this._ws = new CgMqServerWebsocket(this);
|
|
97
|
-
}
|
|
98
|
-
return new Promise(async (resolve, reject) => {
|
|
99
|
-
this._ws.connect(cfg.host, cfg.port);
|
|
100
|
-
let pretime = Date.now();
|
|
101
|
-
while (true) {
|
|
102
|
-
if (this._ws.connected) {
|
|
103
|
-
resolve(true);
|
|
104
|
-
break;
|
|
105
|
-
}
|
|
106
|
-
let now = Date.now();
|
|
107
|
-
if (now - pretime >= 3 * 1000) {
|
|
108
|
-
this._ws.close();
|
|
109
|
-
resolve(false);
|
|
110
|
-
break;
|
|
111
|
-
}
|
|
112
|
-
await Core_1.core.sleep(100);
|
|
113
|
-
}
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
async callRemote(to_identity, func_name, ...args) {
|
|
117
|
-
let data = {
|
|
118
|
-
cmd: func_name,
|
|
119
|
-
args: args
|
|
120
|
-
};
|
|
121
|
-
let jsonData = (await this._ws.push(to_identity, data));
|
|
122
|
-
return jsonData;
|
|
123
|
-
}
|
|
124
|
-
async onMsg(msg) {
|
|
125
|
-
if (this._onmsg) {
|
|
126
|
-
let data = await Core_1.core.safeCall(this._onmsg, null, msg);
|
|
127
|
-
return data;
|
|
128
|
-
}
|
|
129
|
-
return;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
exports.CgMq = CgMq;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CgMq = exports.CgMqConfig = exports.CgMqRetMsg = void 0;
|
|
4
|
+
const Core_1 = require("../Core/Core");
|
|
5
|
+
const Log_1 = require("../Logic/Log");
|
|
6
|
+
const IRpcServerWebSocket_1 = require("../SocketServer/IRpcServerWebSocket");
|
|
7
|
+
const IRpc_1 = require("../SocketServer/IRpc");
|
|
8
|
+
//接受到的消息无需basemsg部分
|
|
9
|
+
class CgMqMsg extends IRpc_1.RpcBaseMsg {
|
|
10
|
+
/**
|
|
11
|
+
* 必填,目的身份
|
|
12
|
+
*/
|
|
13
|
+
to_identity = "";
|
|
14
|
+
/**
|
|
15
|
+
* 消息携带的数据
|
|
16
|
+
*/
|
|
17
|
+
data = null;
|
|
18
|
+
}
|
|
19
|
+
class CgMqRetMsg extends CgMqMsg {
|
|
20
|
+
/**
|
|
21
|
+
* 发送者身份
|
|
22
|
+
*/
|
|
23
|
+
from_identity = "";
|
|
24
|
+
/**
|
|
25
|
+
* audience 数量
|
|
26
|
+
*/
|
|
27
|
+
count = 0;
|
|
28
|
+
}
|
|
29
|
+
exports.CgMqRetMsg = CgMqRetMsg;
|
|
30
|
+
class CgMqServerWebsocket extends IRpcServerWebSocket_1.IRpcServerWebSocket {
|
|
31
|
+
_cgmq = null;
|
|
32
|
+
/**
|
|
33
|
+
* 自己的身份
|
|
34
|
+
*/
|
|
35
|
+
_identity = "";
|
|
36
|
+
constructor(cgmq) {
|
|
37
|
+
super();
|
|
38
|
+
this._cgmq = cgmq;
|
|
39
|
+
this._identity = this._cgmq.cfg.identity;
|
|
40
|
+
this._debug_msg = true;
|
|
41
|
+
}
|
|
42
|
+
onOpen(e) {
|
|
43
|
+
this.init(this._cgmq.cfg.identity);
|
|
44
|
+
}
|
|
45
|
+
async init(identity) {
|
|
46
|
+
let msg = this.getNewMsg("init");
|
|
47
|
+
msg.identity = identity;
|
|
48
|
+
let jsonData = await this.callRemote(msg);
|
|
49
|
+
return jsonData;
|
|
50
|
+
}
|
|
51
|
+
async push(to_identity, data) {
|
|
52
|
+
let msg = this.getNewMsg("msg");
|
|
53
|
+
msg.to_identity = to_identity;
|
|
54
|
+
msg.data = data;
|
|
55
|
+
let jsonData = await this.callRemote(msg);
|
|
56
|
+
return jsonData;
|
|
57
|
+
}
|
|
58
|
+
async receive_msg(msg) {
|
|
59
|
+
let data = await this._cgmq.onMsg(msg);
|
|
60
|
+
msg.data = data;
|
|
61
|
+
msg.__return = true;
|
|
62
|
+
msg.to_identity = msg.from_identity;
|
|
63
|
+
msg.from_identity = this._identity;
|
|
64
|
+
this.send(msg);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
class CgMqConfig {
|
|
68
|
+
identity = "";
|
|
69
|
+
host = "";
|
|
70
|
+
port = -1;
|
|
71
|
+
}
|
|
72
|
+
exports.CgMqConfig = CgMqConfig;
|
|
73
|
+
class CgMq {
|
|
74
|
+
_ws = null;
|
|
75
|
+
_inited = false;
|
|
76
|
+
_cfg = null;
|
|
77
|
+
_onmsg = null;
|
|
78
|
+
get cfg() {
|
|
79
|
+
return this._cfg;
|
|
80
|
+
}
|
|
81
|
+
get identity() {
|
|
82
|
+
return this._cfg?.identity;
|
|
83
|
+
}
|
|
84
|
+
async init(cfg, onmsg) {
|
|
85
|
+
if (!cfg) {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
this._cfg = cfg;
|
|
89
|
+
this._onmsg = onmsg;
|
|
90
|
+
if (this._inited) {
|
|
91
|
+
Log_1.GLog.error("dulplicate init for CgMq");
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
this._inited = true;
|
|
95
|
+
if (!this._ws) {
|
|
96
|
+
this._ws = new CgMqServerWebsocket(this);
|
|
97
|
+
}
|
|
98
|
+
return new Promise(async (resolve, reject) => {
|
|
99
|
+
this._ws.connect(cfg.host, cfg.port);
|
|
100
|
+
let pretime = Date.now();
|
|
101
|
+
while (true) {
|
|
102
|
+
if (this._ws.connected) {
|
|
103
|
+
resolve(true);
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
let now = Date.now();
|
|
107
|
+
if (now - pretime >= 3 * 1000) {
|
|
108
|
+
this._ws.close();
|
|
109
|
+
resolve(false);
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
112
|
+
await Core_1.core.sleep(100);
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
async callRemote(to_identity, func_name, ...args) {
|
|
117
|
+
let data = {
|
|
118
|
+
cmd: func_name,
|
|
119
|
+
args: args
|
|
120
|
+
};
|
|
121
|
+
let jsonData = (await this._ws.push(to_identity, data));
|
|
122
|
+
return jsonData;
|
|
123
|
+
}
|
|
124
|
+
async onMsg(msg) {
|
|
125
|
+
if (this._onmsg) {
|
|
126
|
+
let data = await Core_1.core.safeCall(this._onmsg, null, msg);
|
|
127
|
+
return data;
|
|
128
|
+
}
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
exports.CgMq = CgMq;
|
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GEmailTool = void 0;
|
|
4
|
-
const nodeMailer = require("nodemailer");
|
|
5
|
-
const IServerConfig_1 = require("../Config/IServerConfig");
|
|
6
|
-
const Log_1 = require("../Logic/Log");
|
|
7
|
-
exports.GEmailTool = null;
|
|
8
|
-
class EmailTool {
|
|
9
|
-
send(to, subject, html) {
|
|
10
|
-
return new Promise((resolve, reject) => {
|
|
11
|
-
let transport = nodeMailer.createTransport({
|
|
12
|
-
host: IServerConfig_1.GServerCfg.third_cfg.email.host,
|
|
13
|
-
port: IServerConfig_1.GServerCfg.third_cfg.email.port,
|
|
14
|
-
secure: IServerConfig_1.GServerCfg.third_cfg.email.secure,
|
|
15
|
-
auth: {
|
|
16
|
-
user: IServerConfig_1.GServerCfg.third_cfg.email.auth.user,
|
|
17
|
-
pass: IServerConfig_1.GServerCfg.third_cfg.email.auth.pass
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
let mail = {
|
|
21
|
-
from: IServerConfig_1.GServerCfg.third_cfg.email.from,
|
|
22
|
-
to: to,
|
|
23
|
-
subject: subject,
|
|
24
|
-
html: html
|
|
25
|
-
};
|
|
26
|
-
transport.sendMail(mail, (_err, msg) => {
|
|
27
|
-
Log_1.GLog.error(JSON.stringify(_err));
|
|
28
|
-
resolve(_err);
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
exports.GEmailTool = new EmailTool();
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GEmailTool = void 0;
|
|
4
|
+
const nodeMailer = require("nodemailer");
|
|
5
|
+
const IServerConfig_1 = require("../Config/IServerConfig");
|
|
6
|
+
const Log_1 = require("../Logic/Log");
|
|
7
|
+
exports.GEmailTool = null;
|
|
8
|
+
class EmailTool {
|
|
9
|
+
send(to, subject, html) {
|
|
10
|
+
return new Promise((resolve, reject) => {
|
|
11
|
+
let transport = nodeMailer.createTransport({
|
|
12
|
+
host: IServerConfig_1.GServerCfg.third_cfg.email.host,
|
|
13
|
+
port: IServerConfig_1.GServerCfg.third_cfg.email.port,
|
|
14
|
+
secure: IServerConfig_1.GServerCfg.third_cfg.email.secure,
|
|
15
|
+
auth: {
|
|
16
|
+
user: IServerConfig_1.GServerCfg.third_cfg.email.auth.user,
|
|
17
|
+
pass: IServerConfig_1.GServerCfg.third_cfg.email.auth.pass
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
let mail = {
|
|
21
|
+
from: IServerConfig_1.GServerCfg.third_cfg.email.from,
|
|
22
|
+
to: to,
|
|
23
|
+
subject: subject,
|
|
24
|
+
html: html
|
|
25
|
+
};
|
|
26
|
+
transport.sendMail(mail, (_err, msg) => {
|
|
27
|
+
Log_1.GLog.error(JSON.stringify(_err));
|
|
28
|
+
resolve(_err);
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.GEmailTool = new EmailTool();
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GOpenSocial = void 0;
|
|
4
|
-
const IServerConfig_1 = require("../Config/IServerConfig");
|
|
5
|
-
const HttpTool_1 = require("../Logic/HttpTool");
|
|
6
|
-
exports.GOpenSocial = null;
|
|
7
|
-
class OpenSocial {
|
|
8
|
-
_getNewMsg() {
|
|
9
|
-
return {
|
|
10
|
-
app_id: IServerConfig_1.GServerCfg.third_cfg.open_social.app_id,
|
|
11
|
-
app_secret: IServerConfig_1.GServerCfg.third_cfg.open_social.app_secret
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
async getUser(unionid, openid) {
|
|
15
|
-
let msg = {
|
|
16
|
-
unionid: unionid,
|
|
17
|
-
openid: openid
|
|
18
|
-
};
|
|
19
|
-
let rs = await HttpTool_1.GHttpTool.post({ url: IServerConfig_1.GServerCfg.third_cfg.open_social.user_url, json: msg });
|
|
20
|
-
return rs.body;
|
|
21
|
-
}
|
|
22
|
-
async updatePwd(unionid, openid, new_pwd) {
|
|
23
|
-
let msg = {
|
|
24
|
-
unionid: unionid,
|
|
25
|
-
openid: openid,
|
|
26
|
-
password: new_pwd
|
|
27
|
-
};
|
|
28
|
-
let jsonData = await HttpTool_1.GHttpTool.post({ url: IServerConfig_1.GServerCfg.third_cfg.open_social.update_pwd_url, json: msg });
|
|
29
|
-
return jsonData.body || jsonData.error;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
exports.GOpenSocial = new OpenSocial();
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GOpenSocial = void 0;
|
|
4
|
+
const IServerConfig_1 = require("../Config/IServerConfig");
|
|
5
|
+
const HttpTool_1 = require("../Logic/HttpTool");
|
|
6
|
+
exports.GOpenSocial = null;
|
|
7
|
+
class OpenSocial {
|
|
8
|
+
_getNewMsg() {
|
|
9
|
+
return {
|
|
10
|
+
app_id: IServerConfig_1.GServerCfg.third_cfg.open_social.app_id,
|
|
11
|
+
app_secret: IServerConfig_1.GServerCfg.third_cfg.open_social.app_secret
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
async getUser(unionid, openid) {
|
|
15
|
+
let msg = {
|
|
16
|
+
unionid: unionid,
|
|
17
|
+
openid: openid
|
|
18
|
+
};
|
|
19
|
+
let rs = await HttpTool_1.GHttpTool.post({ url: IServerConfig_1.GServerCfg.third_cfg.open_social.user_url, json: msg });
|
|
20
|
+
return rs.body;
|
|
21
|
+
}
|
|
22
|
+
async updatePwd(unionid, openid, new_pwd) {
|
|
23
|
+
let msg = {
|
|
24
|
+
unionid: unionid,
|
|
25
|
+
openid: openid,
|
|
26
|
+
password: new_pwd
|
|
27
|
+
};
|
|
28
|
+
let jsonData = await HttpTool_1.GHttpTool.post({ url: IServerConfig_1.GServerCfg.third_cfg.open_social.update_pwd_url, json: msg });
|
|
29
|
+
return jsonData.body || jsonData.error;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.GOpenSocial = new OpenSocial();
|
|
@@ -1,118 +1,118 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.QQTool = exports.GQQTool = exports.QQUserInfo = void 0;
|
|
4
|
-
const _ = require("underscore");
|
|
5
|
-
const URLEncode = require("urlencode");
|
|
6
|
-
const IServerConfig_1 = require("../Config/IServerConfig");
|
|
7
|
-
const HttpTool_1 = require("../Logic/HttpTool");
|
|
8
|
-
const Log_1 = require("../Logic/Log");
|
|
9
|
-
class QQUserInfo {
|
|
10
|
-
ret = 0;
|
|
11
|
-
msg = "";
|
|
12
|
-
is_lost = 0;
|
|
13
|
-
nickname = "";
|
|
14
|
-
gender = ""; //"男"
|
|
15
|
-
province = ""; //"四川"
|
|
16
|
-
city = ""; //"成都"
|
|
17
|
-
year = ""; //"1988"
|
|
18
|
-
constellation = "";
|
|
19
|
-
figureurl = ""; //http://qzapp.qlogo.cn/qzapp/101775753/B5EA2E2138715A07DE91B5BACBA0CCE5/30
|
|
20
|
-
figureurl_1 = ""; //http://qzapp.qlogo.cn/qzapp/101775753/B5EA2E2138715A07DE91B5BACBA0CCE5/50
|
|
21
|
-
figureurl_2 = ""; //http://qzapp.qlogo.cn/qzapp/101775753/B5EA2E2138715A07DE91B5BACBA0CCE5/100
|
|
22
|
-
figureurl_qq_1 = ""; //http://thirdqq.qlogo.cn/g?b=oidb&k=jgOibQ4eLHDBT57oAib1DrOg&s=40&t=1556419177
|
|
23
|
-
figureurl_qq_2 = ""; //http://thirdqq.qlogo.cn/g?b=oidb&k=jgOibQ4eLHDBT57oAib1DrOg&s=100&t=1556419177
|
|
24
|
-
figureurl_qq = ""; //http://thirdqq.qlogo.cn/g?b=oidb&k=jgOibQ4eLHDBT57oAib1DrOg&s=140&t=1556419177
|
|
25
|
-
figureurl_type = ""; //"1"
|
|
26
|
-
is_yellow_vip; //"0"
|
|
27
|
-
vip = ""; //"0"
|
|
28
|
-
yellow_vip_level = ""; //"0"
|
|
29
|
-
level = ""; //"0"
|
|
30
|
-
is_yellow_year_vip = ""; //"0"
|
|
31
|
-
}
|
|
32
|
-
exports.QQUserInfo = QQUserInfo;
|
|
33
|
-
exports.GQQTool = null;
|
|
34
|
-
class QQTool {
|
|
35
|
-
/**
|
|
36
|
-
* 获取Authorization Code
|
|
37
|
-
* @param scope 可选 请求用户授权时向用户显示的可进行授权的列表。
|
|
38
|
-
可填写的值是API文档中列出的接口,以及一些动作型的授权(目前仅有:do_like),如果要填写多个接口名称,请用逗号隔开。
|
|
39
|
-
例如:scope=get_user_info,list_album,upload_pic,do_like
|
|
40
|
-
不传则默认请求对接口get_user_info进行授权。
|
|
41
|
-
建议控制授权项的数量,只传入必要的接口名称,因为授权项越多,用户越可能拒绝进行任何授权。
|
|
42
|
-
* @param display 仅PC网站接入时使用。
|
|
43
|
-
用于展示的样式。不传则默认展示为PC下的样式。
|
|
44
|
-
如果传入“mobile”,则展示为mobile端下的样式。
|
|
45
|
-
*/
|
|
46
|
-
getAuthCodeUrl(scope, display) {
|
|
47
|
-
//必须 成功授权后的回调地址,必须是注册appid时填写的主域名下的地址,建议设置为网站首页或网站的用户中心
|
|
48
|
-
let redirect_uri = URLEncode.encode(IServerConfig_1.GServerCfg.third_cfg.qq.redirect_uri);
|
|
49
|
-
//必须 申请QQ登录成功后,分配给应用的appid。
|
|
50
|
-
let client_id = IServerConfig_1.GServerCfg.third_cfg.qq.app_id;
|
|
51
|
-
//必须 授权类型,此值固定为“code”。
|
|
52
|
-
let response_type = "code";
|
|
53
|
-
//必须 client端的状态值。用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。请务必严格按照流程检查用户与state参数状态的绑定。
|
|
54
|
-
let state = _.random(1000000, 9999999);
|
|
55
|
-
//PC网站
|
|
56
|
-
let url = "https://graph.qq.com/oauth2.0/authorize?redirect_uri=" + redirect_uri + "&response_type=" + response_type + "&state=" + state + "&client_id=" + client_id;
|
|
57
|
-
if (scope) {
|
|
58
|
-
url += "&scope=" + scope;
|
|
59
|
-
}
|
|
60
|
-
if (display) {
|
|
61
|
-
url += "&display=" + display;
|
|
62
|
-
}
|
|
63
|
-
return url;
|
|
64
|
-
}
|
|
65
|
-
async getAccessToken(auth_code) {
|
|
66
|
-
if (!auth_code) {
|
|
67
|
-
return null;
|
|
68
|
-
}
|
|
69
|
-
//必须 授权类型,在本步骤中,此值为“authorization_code”。
|
|
70
|
-
let grant_type = "authorization_code";
|
|
71
|
-
//必须 申请QQ登录成功后,分配给应用的appid。
|
|
72
|
-
let client_id = IServerConfig_1.GServerCfg.third_cfg.qq.app_id;
|
|
73
|
-
//必须 申请QQ登录成功后,分配给网站的appkey。
|
|
74
|
-
let client_secret = IServerConfig_1.GServerCfg.third_cfg.qq.app_key;
|
|
75
|
-
//必须 成功授权后的回调地址,必须是注册appid时填写的主域名下的地址,建议设置为网站首页或网站的用户中心
|
|
76
|
-
let redirect_uri = URLEncode.encode(IServerConfig_1.GServerCfg.third_cfg.qq.redirect_uri);
|
|
77
|
-
let url = "https://graph.qq.com/oauth2.0/token?code=" + auth_code + "&grant_type=" + grant_type + "&client_id=" + client_id + "&client_secret=" + client_secret + "&redirect_uri=" + redirect_uri;
|
|
78
|
-
let rs = await HttpTool_1.GHttpTool.get(url);
|
|
79
|
-
if (rs.body && rs.body.access_token) {
|
|
80
|
-
return rs.body.access_token;
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
Log_1.GLog.error(rs.body);
|
|
84
|
-
}
|
|
85
|
-
return null;
|
|
86
|
-
}
|
|
87
|
-
async getOpenId(access_token) {
|
|
88
|
-
let url = "https://graph.qq.com/oauth2.0/me?access_token=" + access_token;
|
|
89
|
-
let rs = await HttpTool_1.GHttpTool.get(url);
|
|
90
|
-
let body = rs.response ? rs.response.body : null;
|
|
91
|
-
if (body) {
|
|
92
|
-
body = body.replace("callback( ", "");
|
|
93
|
-
body = body.replace(" );\n", "");
|
|
94
|
-
try {
|
|
95
|
-
body = JSON.parse(body);
|
|
96
|
-
}
|
|
97
|
-
catch (e) { }
|
|
98
|
-
if (!body.openid) {
|
|
99
|
-
Log_1.GLog.error(rs.response.body);
|
|
100
|
-
}
|
|
101
|
-
return body.openid;
|
|
102
|
-
}
|
|
103
|
-
return null;
|
|
104
|
-
}
|
|
105
|
-
async getUserInfo(access_token, openid) {
|
|
106
|
-
if (!access_token || !openid) {
|
|
107
|
-
return null;
|
|
108
|
-
}
|
|
109
|
-
let url = "https://graph.qq.com/user/get_user_info?access_token=" + access_token + "&oauth_consumer_key=" + IServerConfig_1.GServerCfg.third_cfg.qq.app_id + "&openid=" + openid;
|
|
110
|
-
let rs = await HttpTool_1.GHttpTool.get(url);
|
|
111
|
-
if (rs.body) {
|
|
112
|
-
return rs.body;
|
|
113
|
-
}
|
|
114
|
-
return null;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
exports.QQTool = QQTool;
|
|
118
|
-
exports.GQQTool = new QQTool();
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.QQTool = exports.GQQTool = exports.QQUserInfo = void 0;
|
|
4
|
+
const _ = require("underscore");
|
|
5
|
+
const URLEncode = require("urlencode");
|
|
6
|
+
const IServerConfig_1 = require("../Config/IServerConfig");
|
|
7
|
+
const HttpTool_1 = require("../Logic/HttpTool");
|
|
8
|
+
const Log_1 = require("../Logic/Log");
|
|
9
|
+
class QQUserInfo {
|
|
10
|
+
ret = 0;
|
|
11
|
+
msg = "";
|
|
12
|
+
is_lost = 0;
|
|
13
|
+
nickname = "";
|
|
14
|
+
gender = ""; //"男"
|
|
15
|
+
province = ""; //"四川"
|
|
16
|
+
city = ""; //"成都"
|
|
17
|
+
year = ""; //"1988"
|
|
18
|
+
constellation = "";
|
|
19
|
+
figureurl = ""; //http://qzapp.qlogo.cn/qzapp/101775753/B5EA2E2138715A07DE91B5BACBA0CCE5/30
|
|
20
|
+
figureurl_1 = ""; //http://qzapp.qlogo.cn/qzapp/101775753/B5EA2E2138715A07DE91B5BACBA0CCE5/50
|
|
21
|
+
figureurl_2 = ""; //http://qzapp.qlogo.cn/qzapp/101775753/B5EA2E2138715A07DE91B5BACBA0CCE5/100
|
|
22
|
+
figureurl_qq_1 = ""; //http://thirdqq.qlogo.cn/g?b=oidb&k=jgOibQ4eLHDBT57oAib1DrOg&s=40&t=1556419177
|
|
23
|
+
figureurl_qq_2 = ""; //http://thirdqq.qlogo.cn/g?b=oidb&k=jgOibQ4eLHDBT57oAib1DrOg&s=100&t=1556419177
|
|
24
|
+
figureurl_qq = ""; //http://thirdqq.qlogo.cn/g?b=oidb&k=jgOibQ4eLHDBT57oAib1DrOg&s=140&t=1556419177
|
|
25
|
+
figureurl_type = ""; //"1"
|
|
26
|
+
is_yellow_vip; //"0"
|
|
27
|
+
vip = ""; //"0"
|
|
28
|
+
yellow_vip_level = ""; //"0"
|
|
29
|
+
level = ""; //"0"
|
|
30
|
+
is_yellow_year_vip = ""; //"0"
|
|
31
|
+
}
|
|
32
|
+
exports.QQUserInfo = QQUserInfo;
|
|
33
|
+
exports.GQQTool = null;
|
|
34
|
+
class QQTool {
|
|
35
|
+
/**
|
|
36
|
+
* 获取Authorization Code
|
|
37
|
+
* @param scope 可选 请求用户授权时向用户显示的可进行授权的列表。
|
|
38
|
+
可填写的值是API文档中列出的接口,以及一些动作型的授权(目前仅有:do_like),如果要填写多个接口名称,请用逗号隔开。
|
|
39
|
+
例如:scope=get_user_info,list_album,upload_pic,do_like
|
|
40
|
+
不传则默认请求对接口get_user_info进行授权。
|
|
41
|
+
建议控制授权项的数量,只传入必要的接口名称,因为授权项越多,用户越可能拒绝进行任何授权。
|
|
42
|
+
* @param display 仅PC网站接入时使用。
|
|
43
|
+
用于展示的样式。不传则默认展示为PC下的样式。
|
|
44
|
+
如果传入“mobile”,则展示为mobile端下的样式。
|
|
45
|
+
*/
|
|
46
|
+
getAuthCodeUrl(scope, display) {
|
|
47
|
+
//必须 成功授权后的回调地址,必须是注册appid时填写的主域名下的地址,建议设置为网站首页或网站的用户中心
|
|
48
|
+
let redirect_uri = URLEncode.encode(IServerConfig_1.GServerCfg.third_cfg.qq.redirect_uri);
|
|
49
|
+
//必须 申请QQ登录成功后,分配给应用的appid。
|
|
50
|
+
let client_id = IServerConfig_1.GServerCfg.third_cfg.qq.app_id;
|
|
51
|
+
//必须 授权类型,此值固定为“code”。
|
|
52
|
+
let response_type = "code";
|
|
53
|
+
//必须 client端的状态值。用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。请务必严格按照流程检查用户与state参数状态的绑定。
|
|
54
|
+
let state = _.random(1000000, 9999999);
|
|
55
|
+
//PC网站
|
|
56
|
+
let url = "https://graph.qq.com/oauth2.0/authorize?redirect_uri=" + redirect_uri + "&response_type=" + response_type + "&state=" + state + "&client_id=" + client_id;
|
|
57
|
+
if (scope) {
|
|
58
|
+
url += "&scope=" + scope;
|
|
59
|
+
}
|
|
60
|
+
if (display) {
|
|
61
|
+
url += "&display=" + display;
|
|
62
|
+
}
|
|
63
|
+
return url;
|
|
64
|
+
}
|
|
65
|
+
async getAccessToken(auth_code) {
|
|
66
|
+
if (!auth_code) {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
//必须 授权类型,在本步骤中,此值为“authorization_code”。
|
|
70
|
+
let grant_type = "authorization_code";
|
|
71
|
+
//必须 申请QQ登录成功后,分配给应用的appid。
|
|
72
|
+
let client_id = IServerConfig_1.GServerCfg.third_cfg.qq.app_id;
|
|
73
|
+
//必须 申请QQ登录成功后,分配给网站的appkey。
|
|
74
|
+
let client_secret = IServerConfig_1.GServerCfg.third_cfg.qq.app_key;
|
|
75
|
+
//必须 成功授权后的回调地址,必须是注册appid时填写的主域名下的地址,建议设置为网站首页或网站的用户中心
|
|
76
|
+
let redirect_uri = URLEncode.encode(IServerConfig_1.GServerCfg.third_cfg.qq.redirect_uri);
|
|
77
|
+
let url = "https://graph.qq.com/oauth2.0/token?code=" + auth_code + "&grant_type=" + grant_type + "&client_id=" + client_id + "&client_secret=" + client_secret + "&redirect_uri=" + redirect_uri;
|
|
78
|
+
let rs = await HttpTool_1.GHttpTool.get(url);
|
|
79
|
+
if (rs.body && rs.body.access_token) {
|
|
80
|
+
return rs.body.access_token;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
Log_1.GLog.error(rs.body);
|
|
84
|
+
}
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
async getOpenId(access_token) {
|
|
88
|
+
let url = "https://graph.qq.com/oauth2.0/me?access_token=" + access_token;
|
|
89
|
+
let rs = await HttpTool_1.GHttpTool.get(url);
|
|
90
|
+
let body = rs.response ? rs.response.body : null;
|
|
91
|
+
if (body) {
|
|
92
|
+
body = body.replace("callback( ", "");
|
|
93
|
+
body = body.replace(" );\n", "");
|
|
94
|
+
try {
|
|
95
|
+
body = JSON.parse(body);
|
|
96
|
+
}
|
|
97
|
+
catch (e) { }
|
|
98
|
+
if (!body.openid) {
|
|
99
|
+
Log_1.GLog.error(rs.response.body);
|
|
100
|
+
}
|
|
101
|
+
return body.openid;
|
|
102
|
+
}
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
async getUserInfo(access_token, openid) {
|
|
106
|
+
if (!access_token || !openid) {
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
let url = "https://graph.qq.com/user/get_user_info?access_token=" + access_token + "&oauth_consumer_key=" + IServerConfig_1.GServerCfg.third_cfg.qq.app_id + "&openid=" + openid;
|
|
110
|
+
let rs = await HttpTool_1.GHttpTool.get(url);
|
|
111
|
+
if (rs.body) {
|
|
112
|
+
return rs.body;
|
|
113
|
+
}
|
|
114
|
+
return null;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
exports.QQTool = QQTool;
|
|
118
|
+
exports.GQQTool = new QQTool();
|