提交 6435bbe1108349e3be43304babf9a1de397ec3d8

作者 juvenile
1 个父辈 7f8655c2

代码修改

... ... @@ -13,4 +13,5 @@ run/
13 13 typings/
14 14 .nyc_output/
15 15 .DS_Store
16   -yarn-error.lock
\ No newline at end of file
  16 +yarn-error.lock
  17 +public
\ No newline at end of file
... ...
1   -module.exports = app => {
  1 +// const passport = require('./app/etc/authorization');
  2 +const flash = require('connect-flash');
  3 +const passport = require('./app/middleware/authorization');
2 4
3   - app.once('server', server => {
4   -
5   - })
6   -
7   - app.on('error', (err, ctx) => {
8   -
9   - })
10   -
11   - app.on('request', ctx => {
12   -
13   - })
14   -
15   - app.on('response', ctx => {
16   - const used = Date.now() - ctx.starttime
17   - console.log(ctx, 'used')
18   - })
19   -}
\ No newline at end of file
  5 +class Hro {
  6 + constructor(app) {
  7 + this.app = app;
  8 + }
  9 + configWillLoad() {
  10 + // Ready to call configDidLoad,
  11 + // Config, plugin files are referred,
  12 + // this is the last chance to modify the config.
  13 + console.log('configWillLoad');
  14 + }
  15 + configDidLoad() {
  16 + // Config, plugin files have been loaded.
  17 + console.log('configDidLoad');
  18 + }
  19 + async didLoad() {
  20 + // All files have loaded, start plugin here.
  21 + console.log('didLoad');
  22 + }
  23 + async willReady() {
  24 + // All plugins have started, can do some thing before app ready'
  25 + const { app } = this;
  26 + passport(app);// 添加passport验证方法
  27 + flash(app)
  28 + // console.log('willReady',app);
  29 + }
  30 + async didReady() {
  31 + // Worker is ready, can do some things
  32 + // don't need to block the app boot.
  33 + console.log('didReady');
  34 + }
  35 + async serverDidReady() {
  36 + // Server is listening.
  37 + console.log('serverDidReady');
  38 + }
  39 + async beforeClose() {
  40 + // Do some thing before app close.
  41 + console.log('configWillLoad');
  42 + }
  43 +}
  44 +module.exports = Hro;
\ No newline at end of file
... ...
1 1 "use strict";
2   -
3   -const passport = require("passport");
4 2 const urlencode = require("urlencode");
5 3 const async = require("async");
6 4 const crypto = require("crypto");
7 5 const fs = require("fs");
8 6 const path = require("path");
9   -
10 7 const Controller = require("egg").Controller;
11   -// logger, rest, settings
12 8
13 9 class AuthController extends Controller {
14   - async index() {
15   - const { ctx, logger } = this;
16   - const { request } = ctx;
17   -
18   - logger.info(request);
  10 + index(req, res, next) {
  11 + logger.info(req);
  12 + // res.redirect("https://www.baidu.com");
19 13 }
20 14
21   - async getImg(req, res) {
  15 + getImg(req, res, next) {
  16 + logger.info(req.url, "1231231231");
22 17 const parentdir = path.resolve(__dirname, "..");
23 18 const paths =
24 19 parentdir + "/build/public" + urlencode.decode(req.url, "utf8");
25   -
26 20 fs.readFile(paths, function (err, data) {
  21 + console.log(err, data);
27 22 if (err) {
28 23 res.send("读取错误");
29 24 } else {
... ... @@ -32,81 +27,56 @@ class AuthController extends Controller {
32 27 });
33 28 }
34 29
35   - async indexPrefix(req, res) {
  30 + indexPrefix() {
36 31 const { ctx } = this;
37   -
38   - ctx.body = {
39   - data: req.csrfToken(),
40   - };
41   -
42   - return ctx.body;
  32 + const { logger, req } = ctx;
  33 + return (ctx.body = {});
  34 + // return ctx.body({ data: ctx.csrfToken });
  35 + // if (req.csrfToken) {
  36 + // if (settings.prefix && settings.prefix.length > 1) {
  37 + // res.redirect(settings.prefix.substring(0, settings.prefix.length - 1));
  38 + // } else {
  39 + // res.render("index", { csrfToken: req.csrfToken() });
  40 + // }
  41 + // } else res.render("index", { csrfToken: "" });
43 42 }
44 43
45   - async productDes(req, res) {
46   - const { ctx } = this;
47   -
48   - if (req.csrfToken) {
49   - await ctx.render("chat/new-chat", { csrfToken: req.csrfToken() });
50   - } else {
51   - await ctx.render("chat/new-chat", { csrfToken: "" });
52   - }
  44 + productDes(req, res, next) {
  45 + if (req.csrfToken)
  46 + res.render("chat/new-chat", { csrfToken: req.csrfToken() });
  47 + else res.render("chat/new-chat", { csrfToken: "" });
53 48 }
54 49
55   - async recharge(req, res) {
56   - const { ctx } = this;
57   - let params = JSON.parse(urlencode.decode(req.query.params));
58   -
59   - if (req.csrfToken) {
60   - ctx.render("recharge", {
61   - recharge: params,
62   - csrfToken: req.csrfToken(),
63   - });
64   - } else {
65   - ctx.render("recharge", {
66   - recharge: params,
67   - csrfToken: "",
68   - });
69   - }
  50 + recharge(req, res) {
  51 + var params = JSON.parse(urlencode.decode(req.query.params));
  52 + console.log(params);
  53 + if (req.csrfToken)
  54 + res.render("recharge", { recharge: params, csrfToken: req.csrfToken() });
  55 + else res.render("recharge", { recharge: params, csrfToken: "" });
70 56 }
71 57
72   - async register(req, res) {
73   - const { ctx } = this;
74   -
75   - if (req.csrfToken) {
76   - ctx.render("newRegister", { csrfToken: req.csrfToken() });
77   - } else {
78   - ctx.render("newRegister", { csrfToken: "" });
79   - }
  58 + register(req, res, next) {
  59 + if (req.csrfToken)
  60 + res.render("newRegister", { csrfToken: req.csrfToken() });
  61 + else res.render("newRegister", { csrfToken: "" });
80 62 }
81 63
82   - async mobileRegister(req, res) {
83   - const { ctx } = this;
84   -
85   - if (req.csrfToken) {
86   - ctx.render("registerMobile", { csrfToken: req.csrfToken() });
87   - } else {
88   - ctx.render("registerMobile", { csrfToken: "" });
89   - }
  64 + mobileRegister(req, res) {
  65 + if (req.csrfToken)
  66 + res.render("registerMobile", { csrfToken: req.csrfToken() });
  67 + else res.render("registerMobile", { csrfToken: "" });
90 68 }
91 69
92   - async mobileRegisterSuccess(req, res) {
93   - const { ctx } = this;
94   -
95   - if (req.csrfToken) {
96   - ctx.render("registerMobileSuccess", { csrfToken: req.csrfToken() });
97   - } else {
98   - ctx.render("registerMobileSuccess", { csrfToken: "" });
99   - }
  70 + mobileRegisterSuccess(req, res) {
  71 + if (req.csrfToken)
  72 + res.render("registerMobileSuccess", { csrfToken: req.csrfToken() });
  73 + else res.render("registerMobileSuccess", { csrfToken: "" });
100 74 }
101 75
102   - async signIn(req, res) {
103   - const { ctx } = this;
104   -
105   - if (req.csrfToken) {
106   - ctx.render("newLogin", { csrfToken: req.csrfToken() });
107   - } else {
108   - ctx.render("newLogin", { csrfToken: "" });
109   - }
  76 + signIn(req, res, next) {
  77 + // console.log(req);
  78 + if (req.csrfToken) res.render("newLogin", { csrfToken: req.csrfToken() });
  79 + else res.render("newLogin", { csrfToken: "" });
110 80 }
111 81
112 82 async doLogin(req, res, next) {
... ... @@ -132,10 +102,35 @@ class AuthController extends Controller {
132 102 })(req, res, next);
133 103 }
134 104
135   - async signOut(req, res) {
136   - const { ctx, logger } = this;
137   - const { session } = ctx;
  105 + async loginCallback() {
  106 + const { ctx } = this;
  107 + if ("application/json" == ctx.request.get("accept")) {
  108 + //用户名密码json登录
  109 + if (ctx.isAuthenticated() && !ctx.session.returnTo) {
  110 + if(ctx.session.user_info.code>=300){
  111 + ctx.body = ctx.session.user_info
  112 + }else {
  113 + ctx.body = {
  114 + scope: ctx.session.user_info.scope,
  115 + user_info: ctx.session.user_info.user,
  116 + };
  117 + }
  118 +
  119 + } else if (ctx.isAuthenticated() && ctx.session.returnTo) {
  120 + ctx.body = { code: 301, redirect_uri: ctx.session.returnTo };
  121 + } else {
  122 + ctx.body = { code: 400, message: "登录失败" };
  123 + }
  124 + } else {
  125 + //扫二维码第三方登录
  126 + ctx.body = { code: 400, message: "登录失败" };
  127 + }
  128 + return ctx.body;
  129 + }
138 130
  131 + signOut() {
  132 + const { ctx, logger } = this;
  133 + const { req, res, session } = ctx;
139 134 if (
140 135 session.passport &&
141 136 session.passport.user &&
... ... @@ -147,13 +142,13 @@ class AuthController extends Controller {
147 142 "You have successfully logged out"
148 143 );
149 144 }
150   -
151   - req.logout();
152   - req.flash("success", "You have successfully logged out");
153   - res.redirect("/");
  145 + logger.info(req);
  146 + // req.logout();
  147 + // req.flash("success", "You have successfully logged out");
  148 + ctx.redirect("/");
154 149 }
155 150
156   - async smsCodes(req, res) {
  151 + smsCodes(req, res, next) {
157 152 rest.postJson({
158 153 baseUrl: "url",
159 154 url: "auth/smscodes",
... ... @@ -174,7 +169,7 @@ class AuthController extends Controller {
174 169 }
175 170 }
176 171
177   - async tenants(req, res, next) {
  172 + tenants(req, res, next) {
178 173 rest.register({
179 174 baseUrl: "url",
180 175 url: "tenants",
... ... @@ -191,7 +186,7 @@ class AuthController extends Controller {
191 186 }
192 187 }
193 188
194   - async resetPass(req, res) {
  189 + resetPass(req, res) {
195 190 rest.putJson({
196 191 baseUrl: "url",
197 192 url: "auth/user",
... ... @@ -211,9 +206,7 @@ class AuthController extends Controller {
211 206 }
212 207 }
213 208
214   - async updatePassword(req, res) {
215   - const { logger } = this;
216   -
  209 + updatePassword(req, res) {
217 210 rest.patchJson({
218 211 baseUrl: "url",
219 212 url: "users/" + req.body.userId,
... ... @@ -232,7 +225,7 @@ class AuthController extends Controller {
232 225 }
233 226 }
234 227
235   - async loadUserInfo(req, res) {
  228 + loadUserInfo(req, res) {
236 229 settings;
237 230
238 231 if (req.session.passport.user && req.session.passport.user.user_info) {
... ... @@ -245,9 +238,7 @@ class AuthController extends Controller {
245 238 }
246 239 }
247 240
248   - async getUploaderToken(req, res) {
249   - const { logger } = this;
250   -
  241 + getUploaderToken(req, res) {
251 242 rest.postJson({
252 243 baseUrl: "ossUrl",
253 244 url: "inits",
... ... @@ -264,9 +255,7 @@ class AuthController extends Controller {
264 255 }
265 256 }
266 257
267   - async getObjectTokenByID(req, res) {
268   - const { logger } = this;
269   -
  258 + getObjectTokenByID(req, res) {
270 259 rest.get({
271 260 baseUrl: "ossUrl",
272 261 url: "objects/" + req.body.file_id,
... ... @@ -283,7 +272,7 @@ class AuthController extends Controller {
283 272 }
284 273 }
285 274
286   - async delOSSObject(req, res) {
  275 + delOSSObject(req, res) {
287 276 rest.del({
288 277 baseUrl: "ossUrl",
289 278 url:
... ... @@ -307,7 +296,7 @@ class AuthController extends Controller {
307 296 }
308 297 }
309 298
310   - async smsVerification(req, res) {
  299 + smsVerification(req, res) {
311 300 rest.postJson({
312 301 baseUrl: "url",
313 302 url: "auth/sms_verification",
... ... @@ -332,13 +321,13 @@ class AuthController extends Controller {
332 321 }
333 322 }
334 323
335   - async healthMonitor(res) {
  324 + healthMonitor(res) {
336 325 res.statusCode = 200;
337 326
338 327 return res.send("status ok");
339 328 }
340 329
341   - async updateUserRoles(req, res) {
  330 + updateUserRoles(req, res) {
342 331 rest.putJson({
343 332 baseUrl: "url",
344 333 url: "user_roles/" + req.body.user_id,
... ... @@ -358,7 +347,7 @@ class AuthController extends Controller {
358 347 }
359 348 }
360 349
361   - async getRoles(req, res) {
  350 + getRoles(req, res) {
362 351 rest.get({
363 352 baseUrl: "url",
364 353 url: "roles",
... ... @@ -374,7 +363,7 @@ class AuthController extends Controller {
374 363 }
375 364 }
376 365
377   - async getUserRoles(req, res) {
  366 + getUserRoles(req, res) {
378 367 rest.get({
379 368 baseUrl: "url",
380 369 url:
... ... @@ -396,7 +385,7 @@ class AuthController extends Controller {
396 385 }
397 386 }
398 387
399   - async getTenant(req, res) {
  388 + getTenant(req, res) {
400 389 rest.get({
401 390 baseUrl: "url",
402 391 url: "tenants/" + req.body.tenant_id,
... ... @@ -412,7 +401,7 @@ class AuthController extends Controller {
412 401 }
413 402 }
414 403
415   - async updateTenant(req, res) {
  404 + updateTenant(req, res) {
416 405 rest.putJson({
417 406 baseUrl: "url",
418 407 url: "tenants/" + req.body.tenant_id,
... ... @@ -428,7 +417,7 @@ class AuthController extends Controller {
428 417 }
429 418 }
430 419
431   - async offer(req, res) {
  420 + offer(req, res) {
432 421 rest.get({
433 422 baseUrl: "hrUrl",
434 423 url:
... ... @@ -448,7 +437,7 @@ class AuthController extends Controller {
448 437 }
449 438 }
450 439
451   - async onboardStatus(req, res) {
  440 + onboardStatus(req, res) {
452 441 rest.get({
453 442 baseUrl: "hrUrl",
454 443 url: "onboard-status",
... ... @@ -465,9 +454,9 @@ class AuthController extends Controller {
465 454 }
466 455 }
467 456
468   - async dowloadApp(req, res) {
469   - let mobileAgent = req.headers["user-agent"].toLowerCase();
470   - let agent = {
  457 + dowloadApp(req, res) {
  458 + var mobileAgent = req.headers["user-agent"].toLowerCase();
  459 + var agent = {
471 460 android:
472 461 mobileAgent.indexOf("android") > -1 || mobileAgent.indexOf("Adr") > -1,
473 462 iPhone: mobileAgent.indexOf("iphone") > -1,
... ... @@ -491,12 +480,12 @@ class AuthController extends Controller {
491 480 }
492 481 }
493 482
494   - async softwareLicense(res) {
  483 + softwareLicense(res) {
495 484 res.render("softwareLicense");
496 485 }
497 486
498   - async changePassForRegister(req, res) {
499   - let options = {
  487 + changePassForRegister(req, res) {
  488 + var options = {
500 489 baseUrl: "url",
501 490 url: "users/" + req.body.user_id,
502 491 params: {
... ... @@ -523,8 +512,8 @@ class AuthController extends Controller {
523 512 }
524 513 }
525 514
526   - async changeTenant(req, res) {
527   - let params = {
  515 + changeTenant(req, res) {
  516 + var params = {
528 517 grant_type: "refresh_token",
529 518 scope: "global_access:tenant_admin,tenant:" + req.body.id,
530 519 refresh_token: req.session.passport.user.refreshToken,
... ... @@ -620,7 +609,7 @@ class AuthController extends Controller {
620 609 }
621 610 }
622 611
623   - async sendRejectOffer(req, res) {
  612 + sendRejectOffer(req, res) {
624 613 rest.get({
625 614 baseUrl: "hrUrl",
626 615 url: req.body.url, //传一个参数
... ... @@ -642,7 +631,7 @@ class AuthController extends Controller {
642 631 }
643 632 }
644 633
645   - async acceptOffer(req, res) {
  634 + acceptOffer(req, res) {
646 635 rest.get({
647 636 baseUrl: "hrUrl",
648 637 url: req.body.url, //传一个参数
... ... @@ -664,7 +653,7 @@ class AuthController extends Controller {
664 653 }
665 654 }
666 655
667   - async imTokens(req, res) {
  656 + imTokens(req, res) {
668 657 rest.post({
669 658 url: "auth/im_tokens",
670 659 params: req.body,
... ... @@ -679,7 +668,7 @@ class AuthController extends Controller {
679 668 }
680 669 }
681 670
682   - async listChannels(req, res) {
  671 + listChannels(req, res) {
683 672 rest.get({
684 673 baseUrl: "chatUrl",
685 674 url: "channels?page_size=10&page=0&status=active",
... ... @@ -695,8 +684,8 @@ class AuthController extends Controller {
695 684 }
696 685 }
697 686
698   - async filemeta(req, res) {
699   - let fullPath =
  687 + filemeta(req, res) {
  688 + var fullPath =
700 689 settings.restful.url +
701 690 "filemeta" +
702 691 settings.restful.version +
... ... @@ -754,8 +743,8 @@ class AuthController extends Controller {
754 743 }
755 744 }
756 745
757   - async getCustomerQrcode(req, res) {
758   - let fullPath =
  746 + getCustomerQrcode(req, res) {
  747 + var fullPath =
759 748 settings.restful.url +
760 749 "crm" +
761 750 settings.restful.version +
... ... @@ -784,8 +773,8 @@ class AuthController extends Controller {
784 773 }
785 774 }
786 775
787   - async getPositionQrcode(req, res) {
788   - let fullPath =
  776 + getPositionQrcode(req, res) {
  777 + var fullPath =
789 778 settings.restful.url +
790 779 "recruit" +
791 780 settings.restful.version +
... ... @@ -815,8 +804,8 @@ class AuthController extends Controller {
815 804 }
816 805 }
817 806
818   - async getOSSConfig(req, res) {
819   - let fullPath =
  807 + getOSSConfig(req, res) {
  808 + var fullPath =
820 809 settings.restful.url + "filemeta" + settings.restful.version + "/config";
821 810 let options = {
822 811 service_catalog: "",
... ... @@ -844,7 +833,7 @@ class AuthController extends Controller {
844 833 }
845 834 }
846 835
847   - async weidianTempLate(req, res) {
  836 + weidianTempLate(req, res) {
848 837 const { params } = req;
849 838 let fullPath =
850 839 settings.restful.url + "socialwork/internal/minishop/" + params.id;
... ... @@ -882,10 +871,8 @@ class AuthController extends Controller {
882 871 }
883 872 }
884 873
885   - async workaiSecurityOAuth(req, res) {
886   - const { logger } = this;
887   - let params = req.query;
888   -
  874 + workaiSecurityOAuth(req, res) {
  875 + var params = req.query;
889 876 if (params.authorization_code) {
890 877 let passport = {
891 878 user: {
... ... @@ -941,7 +928,7 @@ class AuthController extends Controller {
941 928 callback(err, data);
942 929 }
943 930 })
944   - .on("error", function (err, response) {
  931 + .on("error", function (_err, response) {
945 932 let err = new Error("Third login err");
946 933
947 934 callback(err, response);
... ... @@ -984,7 +971,7 @@ class AuthController extends Controller {
984 971 callback(err, data);
985 972 }
986 973 })
987   - .on("error", function (err, response) {
  974 + .on("error", function (_err, response) {
988 975 let err = new Error("Third login tenants list err");
989 976
990 977 callback(err, response);
... ... @@ -1058,8 +1045,8 @@ class AuthController extends Controller {
1058 1045 callback(err, data2);
1059 1046 }
1060 1047 })
1061   - .on("error", function (err, response) {
1062   - logger.error("Third login error", err);
  1048 + .on("error", function (_err, response) {
  1049 + logger.error("Third login error", _err);
1063 1050
1064 1051 let err = new Error("Third login err");
1065 1052
... ... @@ -1139,9 +1126,8 @@ class AuthController extends Controller {
1139 1126 }
1140 1127 }
1141 1128
1142   - async getTastLink(req, res) {
1143   - let url = crypto.createHash("md5").update(req.body.id).digest("hex");
1144   -
  1129 + getTastLink(req, res) {
  1130 + var url = crypto.createHash("md5").update(req.body.id).digest("hex");
1145 1131 if (settings.prefix && settings.prefix.length > 1) {
1146 1132 res.send(
1147 1133 req.protocol +
... ... @@ -1167,10 +1153,9 @@ class AuthController extends Controller {
1167 1153 }
1168 1154 }
1169 1155
1170   - async freedomJobsEmp(req, res) {
1171   - const { logger } = this;
1172   - let id = req.params.id;
1173   -
  1156 + freedomJobsEmp(req, res) {
  1157 + var id = req.params.id;
  1158 + // var url = crypto.createHash('md5').update(id).digest('hex');
1174 1159 if (false) {
1175 1160 //验证未通过verification != url
1176 1161 if (settings.prefix && settings.prefix.length > 1) {
... ... @@ -1234,8 +1219,8 @@ class AuthController extends Controller {
1234 1219 passport.user.err = data.message;
1235 1220 }
1236 1221 })
1237   - .on("error", function (err, response) {
1238   - logger.error("Third login error", err);
  1222 + .on("error", function (_err, response) {
  1223 + logger.error("Third login error", _err);
1239 1224
1240 1225 let err = new Error("Third login err");
1241 1226
... ... @@ -1247,9 +1232,8 @@ class AuthController extends Controller {
1247 1232 }
1248 1233 }
1249 1234
1250   - async getShortToken(req, res) {
1251   - const { logger } = this;
1252   - let params = {
  1235 + getShortToken(req, res) {
  1236 + var params = {
1253 1237 grant_type: "refresh_token",
1254 1238 scope: req.session.passport.user.scope,
1255 1239 refresh_token: req.session.passport.user.refreshToken,
... ...
1   -'use strict';
2   -
3   -const Controller = require('egg').Controller;
4   -
5   -class HomeController extends Controller {
6   - async index() {
7   - const { ctx } = this;
8   - ctx.body = 'hi,egg';
9   - }
10   -}
11   -
12   -module.exports = HomeController;
1   -'use strict';
2   -const Controller = require('egg').Controller;
  1 +"use strict";
  2 +const Controller = require("egg").Controller;
3 3
4 4 class ProxyController extends Controller {
5 5 async info() {
... ... @@ -15,16 +15,22 @@ class ProxyController extends Controller {
15 15 const { ctx } = this;
16 16 const { session, headers, ip } = ctx;
17 17
18   - if (session.passport && session.passport.user && session.passport.user && session.passport.user.token) {
19   - options.headers['Authorization'] = "Bearer " + session.passport.user.token;
  18 + if (
  19 + session.passport &&
  20 + session.passport.user &&
  21 + session.passport.user &&
  22 + session.passport.user.token
  23 + ) {
  24 + options.headers["Authorization"] =
  25 + "Bearer " + session.passport.user.token;
20 26 }
21 27
22   - if (headers['device-id']) {
23   - options.headers['Device-Id'] = headers['device-id'];
  28 + if (headers["device-id"]) {
  29 + options.headers["Device-Id"] = headers["device-id"];
24 30 }
25 31
26 32 if (ip) {
27   - options.headers['Client-Ip'] = ip;
  33 + options.headers["Client-Ip"] = ip;
28 34 }
29 35
30 36 return options;
... ... @@ -43,7 +49,7 @@ class ProxyController extends Controller {
43 49
44 50 addParams(options) {
45 51 const { ctx } = this;
46   - const postData = !ctx.body ? '' : JSON.stringify(ctx.body || {});
  52 + const postData = !ctx.body ? "" : JSON.stringify(ctx.body || {});
47 53
48 54 options.params = postData;
49 55 }
... ... @@ -52,69 +58,53 @@ class ProxyController extends Controller {
52 58 const { params, headers } = options;
53 59
54 60 if (params) {
55   - headers['Content-Length'] = params.length;
  61 + headers["Content-Length"] = params.length;
56 62 }
57 63 }
58 64
59 65 getOptions(url, type) {
60   - const { config } = this;
  66 + const { config,ctx,logger } = this;
  67 + const { session } = ctx;
  68 + const { access_token } = session.user_info;
61 69 const { restful = {} } = config;
62 70 const { version, host, port } = restful;
63   - const catalog = url.substring(1, url.indexOf('/', 1));
64   - const pathUrl = url.substring(url.indexOf('/', 1));
65   - const fullPath = '/' + catalog + version + pathUrl;
  71 + logger.info(version,'version')
  72 + const catalog = url.substring(1, url.indexOf("/", 1));
  73 + const pathUrl = url.substring(url.indexOf("/", 1));
  74 + const fullPath = "/" + catalog + version + pathUrl;
66 75
67 76 return {
68   - 'host': host, //后台请求地址
69   - 'port': port,
70   - 'path': fullPath,
71   - 'method': type,
72   - 'agent': false,
73   - 'headers': {
74   - "Accept": "application/json",
  77 + host: host, //后台请求地址
  78 + port: port,
  79 + path: fullPath,
  80 + method: type,
  81 + agent: false,
  82 + headers: {
  83 + authorization: `Bearer ${access_token}`,
  84 + Accept: "application/json",
75 85 "Content-Type": "application/json",
76   - 'User-Agent': 'Request for Express'
77   - }
  86 + // "User-Agent": "Request for Express",
  87 + },
78 88 };
79 89 }
80 90
81 91 async get() {
82   - const { ctx, config, logger } = this;
83   - const { originalUrl, session, curl } = ctx;
84   - const { restful = {} } = config;
85   - const { host } = restful;
86   - const { access_token } = session.user_info;
87   - const url = splitUrl(originalUrl);
88   - const options = getOptions(url, 'GET');
89   -
90   - addToken(options);
91   -
92   - const result = await curl(
93   - `${host}${url}`,
94   - {
95   - method: 'GET',
96   - dataType: 'json',
97   - headers: {
98   - 'authorization': `Bearer ${access_token}`,
99   - 'accept': 'application/json',
100   - 'content-type': 'application/json'
101   - },
102   - timeout: [5000, 60000]
103   - }
104   - );
105   -
106   - logger.info(
107   - "get originalUrl:",
108   - `${splitUrl(originalUrl)}`,
109   - "get host:",
110   - `${host}`,
111   - "get url:",
112   - `${url}`,
113   - "result:",
114   - result
115   - );
116   -
117   - ctx.body = result.data || {};
  92 + const { ctx, logger } = this;
  93 + const { originalUrl, } = ctx;
  94 + const url = this.splitUrl(originalUrl);
  95 + const options = this.getOptions(url, 'GET');
  96 + const {host ,port,path,...rest} = options
  97 + logger.info(`${host}:${port}${path}`, {
  98 + ...rest,
  99 + timeout: [5000, 60000],
  100 + },12312321)
  101 + const result = await ctx.curl(`${host}:${port}${path}`, {
  102 + ...rest,
  103 + timeout: [5000, 60000],
  104 + });
  105 + logger.info("result:", result);
  106 +
  107 + ctx.body = result.data|| {};
118 108
119 109 return ctx.body;
120 110 }
... ... @@ -124,37 +114,34 @@ class ProxyController extends Controller {
124 114 const { originalUrl, session, curl, request } = ctx;
125 115 const { restful = {} } = config;
126 116 const { host } = restful;
127   - const { access_token } = session.user_info
128   - const url = splitUrl(originalUrl);
129   - const options = getOptions(url, 'POST');
  117 + const { access_token } = session.user_info;
  118 + const url = this.splitUrl(originalUrl);
  119 + const options = this.getOptions(url, "POST");
130 120
131   - addToken(options);
  121 + this.addToken(options);
132 122 addParams(options);
133 123
134   - const result = await curl(
135   - `${host}${url}`,
136   - {
137   - method: 'POST',
138   - dataType: 'json',
139   - data: JSON.stringify(request.body),
140   - headers: {
141   - 'authorization': `Bearer ${access_token}`,
142   - 'accept': 'application/json',
143   - 'content-type': 'application/json'
144   - }
145   - }
146   - );
  124 + const result = await curl(`${host}${url}`, {
  125 + method: "POST",
  126 + dataType: "json",
  127 + data: JSON.stringify(request.body),
  128 + headers: {
  129 + authorization: `Bearer ${access_token}`,
  130 + accept: "application/json",
  131 + "content-type": "application/json",
  132 + },
  133 + });
147 134
148 135 logger.info(
149 136 "post proxy url:",
150 137 `${host}${url}`,
151   - 'headers',
  138 + "headers",
152 139 {
153   - 'authorization': `Bearer ${access_token}`,
154   - 'accept': 'application/json',
155   - 'content-type': 'application/json'
  140 + authorization: `Bearer ${access_token}`,
  141 + accept: "application/json",
  142 + "content-type": "application/json",
156 143 },
157   - 'data',
  144 + "data",
158 145 JSON.stringify(request.body)
159 146 );
160 147
... ... @@ -169,36 +156,33 @@ class ProxyController extends Controller {
169 156 const { hroProxy = {} } = config;
170 157 const { host } = hroProxy;
171 158 const { access_token } = session.user_info;
172   - const url = splitUrl(originalUrl);
173   - const options = getOptions(url, 'PUT');
  159 + const url = this.splitUrl(originalUrl);
  160 + const options = this.getOptions(url, "PUT");
174 161
175   - addToken(options);
  162 + this.addToken(options);
176 163 addParams(options);
177 164
178   - const result = await curl(
179   - `${host}${url}`,
180   - {
181   - method: 'PUT',
182   - dataType: 'json',
183   - data: JSON.stringify(request.body),
184   - headers: {
185   - 'authorization': `Bearer ${access_token}`,
186   - 'accept': 'application/json',
187   - 'content-type': 'application/json'
188   - }
189   - }
190   - );
  165 + const result = await curl(`${host}${url}`, {
  166 + method: "PUT",
  167 + dataType: "json",
  168 + data: JSON.stringify(request.body),
  169 + headers: {
  170 + authorization: `Bearer ${access_token}`,
  171 + accept: "application/json",
  172 + "content-type": "application/json",
  173 + },
  174 + });
191 175
192 176 logger.info(
193 177 "put proxy url:",
194 178 `${host}${url}`,
195   - 'headers',
  179 + "headers",
196 180 {
197   - 'authorization': `Bearer ${access_token}`,
198   - 'accept': 'application/json',
199   - 'content-type': 'application/json'
  181 + authorization: `Bearer ${access_token}`,
  182 + accept: "application/json",
  183 + "content-type": "application/json",
200 184 },
201   - 'data',
  185 + "data",
202 186 JSON.stringify(request.body)
203 187 );
204 188
... ... @@ -213,36 +197,33 @@ class ProxyController extends Controller {
213 197 const { hroProxy = {} } = config;
214 198 const { host } = hroProxy;
215 199 const { access_token } = session.user_info;
216   - const url = splitUrl(originalUrl);
217   - const options = getOptions(url, 'HEAD');
  200 + const url = this.splitUrl(originalUrl);
  201 + const options = this.getOptions(url, "HEAD");
218 202
219   - addToken(options);
  203 + this.addToken(options);
220 204 addParams(options);
221 205
222   - const result = await curl(
223   - `${host}${url}`,
224   - {
225   - method: 'HEAD',
226   - dataType: 'json',
227   - data: JSON.stringify(request.body),
228   - headers: {
229   - 'authorization': `Bearer ${access_token}`,
230   - 'accept': 'application/json',
231   - 'content-type': 'application/json'
232   - }
233   - }
234   - );
  206 + const result = await curl(`${host}${url}`, {
  207 + method: "HEAD",
  208 + dataType: "json",
  209 + data: JSON.stringify(request.body),
  210 + headers: {
  211 + authorization: `Bearer ${access_token}`,
  212 + accept: "application/json",
  213 + "content-type": "application/json",
  214 + },
  215 + });
235 216
236 217 logger.info(
237 218 "head proxy url:",
238 219 `${host}${url}`,
239   - 'headers',
  220 + "headers",
240 221 {
241   - 'authorization': `Bearer ${access_token}`,
242   - 'accept': 'application/json',
243   - 'content-type': 'application/json'
  222 + authorization: `Bearer ${access_token}`,
  223 + accept: "application/json",
  224 + "content-type": "application/json",
244 225 },
245   - 'data',
  226 + "data",
246 227 JSON.stringify(request.body)
247 228 );
248 229
... ... @@ -256,37 +237,29 @@ class ProxyController extends Controller {
256 237 const { originalUrl, session, curl } = ctx;
257 238 const { hroProxy = {} } = config;
258 239 const { host } = hroProxy;
259   - const { access_token } = session.user_info
260   - const url = splitUrl(originalUrl);
261   - const options = getOptions(url, 'DELETE');
  240 + const { access_token } = session.user_info;
  241 + const url = this.splitUrl(originalUrl);
  242 + const options = this.getOptions(url, "DELETE");
262 243
263   - addToken(options);
  244 + this.addToken(options);
264 245 addParams(options);
265 246 addContentLength(options);
266 247
267   - const result = await curl(
268   - `${host}${url}`,
269   - {
270   - method: 'DELETE',
271   - dataType: 'json',
272   - headers: {
273   - 'authorization': `Bearer ${access_token}`,
274   - 'accept': 'application/json',
275   - 'content-type': 'application/json'
276   - }
277   - }
278   - );
  248 + const result = await curl(`${host}${url}`, {
  249 + method: "DELETE",
  250 + dataType: "json",
  251 + headers: {
  252 + authorization: `Bearer ${access_token}`,
  253 + accept: "application/json",
  254 + "content-type": "application/json",
  255 + },
  256 + });
279 257
280   - logger.info(
281   - "delete proxy url:",
282   - `${host}${url}`,
283   - 'headers:',
284   - {
285   - 'authorization': `Bearer ${access_token}`,
286   - 'accept': 'application/json',
287   - 'content-type': 'application/json'
288   - }
289   - );
  258 + logger.info("delete proxy url:", `${host}${url}`, "headers:", {
  259 + authorization: `Bearer ${access_token}`,
  260 + accept: "application/json",
  261 + "content-type": "application/json",
  262 + });
290 263
291 264 ctx.body = result.data || {};
292 265
... ...
  1 +/*
  2 + * 添加passport验证登录权限方法
  3 + */
  4 +module.exports = (app) => {
  5 + app.passport.verify(async (ctx, user) => {
  6 + const { provider = "" } = user;
  7 + const { service = {} } = ctx;
  8 + const { redirect_uri } = ctx.request.body;
  9 + let result;
  10 + switch (provider) {
  11 + case "local":
  12 + result = await service.login.localLogin(user);
  13 + break;
  14 + default:
  15 + // console.log("error:", user)
  16 + break;
  17 + }
  18 + if (result && result.code >= 300) {
  19 + ctx.status = result.status;
  20 + ctx.body = result.data;
  21 + return false;
  22 + }
  23 + if (!result) {
  24 + ctx.status = 500;
  25 + ctx.body = {
  26 + message: "用户或密码错误",
  27 + };
  28 + return false;
  29 + }
  30 + if (redirect_uri) {
  31 + ctx.session.returnTo = `${redirect_uri}?ticket=${Math.random(10000)}`;
  32 + }
  33 + return result;
  34 + });
  35 +
  36 + // 序列化与反序列化,序列化存储到session中只保存用户id
  37 + app.passport.serializeUser(async (ctx, user) => {
  38 + console.log(user, "user");
  39 + return user;
  40 + });
  41 +
  42 + app.passport.deserializeUser(async (ctx, user) => {
  43 + console.log(user,'kncvkxznkcxlklasdjfajdfldkasjflkasdnvkasdnmklasndvldnsa');
  44 + return user;
  45 + });
  46 +};
... ...
... ... @@ -4,6 +4,6 @@
4 4 * @param {Egg.Application} app - egg application
5 5 */
6 6 module.exports = app => {
  7 + require('./router/api')(app);
7 8 require('./router/auth')(app);
8   - require('./router/home')(app);
9 9 };
... ...
  1 +// var payRoll = require("../json/payRoll.json");
1 2
2 3 module.exports = (app) => {
3   - const { router, controller } = app;
  4 + const { router, controller} = app;
4 5 const { auth } = controller;
5   -console.log('controllerxxxxx',controller);
6   - router.get("/signOut", auth.signOut);
7   -
8   - // router.get("/img/*", auth.getImg);
9 6
10   - // router.get("/", auth.indexPrefix);
  7 + const localStrategy = app.passport.authenticate("local", {
  8 + successRedirect: "/doLogin/loginCallback",
  9 + failureRedirect: "/doLogin/loginCallback",
  10 + });
  11 + // router.get("/index", controller.index);
  12 + router.get("/signOut", auth.signOut);
11 13
12   - // router.get("/productDes", auth.productDes);
  14 + router.get("/", auth.indexPrefix);
13 15
14   - // router.get("/register", auth.register);
  16 + router.get("/productDes", auth.productDes);
15 17
16   - // router.get("/mobileRegister", auth.mobileRegister);
  18 + router.get("/register", auth.register);
17 19
18   - // router.get("/mobileRegisterSuccess", auth.mobileRegisterSuccess);
  20 + router.get("/mobileRegister", auth.mobileRegister);
19 21
20   - // router.get("/signIn", auth.signIn);
  22 + router.get("/mobileRegisterSuccess", auth.mobileRegisterSuccess);
21 23
22   - // router.post("/doLogin", auth.doLogin);
  24 + router.get("/signIn", auth.signIn);
23 25
24   - // router.get("/signOut", auth.signOut);
  26 + router.post("/doLogin", localStrategy);
25 27
26   - // router.post("/smsCodes", auth.smsCodes);
  28 + router.get('/doLogin/loginCallback', auth.loginCallback);
27 29
28   - // router.post("/tenants", auth.tenants);
  30 + router.post("/smsCodes", auth.smsCodes);
29 31
30   - // router.post("/resetPass", auth.resetPass);
  32 + router.post("/tenants", auth.tenants);
31 33
32   - // router.post("/updatePassword", auth.updatePassword);
  34 + router.post("/resetPass", auth.resetPass);
33 35
34   - // router.post("/loadUserInfo", auth.loadUserInfo);
  36 + router.post("/updatePassword", auth.updatePassword);
35 37
36   - // router.post("/getUploaderToken", auth.getUploaderToken);
  38 + router.post("/loadUserInfo", auth.loadUserInfo);
37 39
38   - // router.post("/delOSSObject", auth.delOSSObject);
  40 + router.post("/getUploaderToken", auth.getUploaderToken);
39 41
40   - // router.post("/smsVerification", auth.smsVerification);
  42 + router.post("/delOSSObject", auth.delOSSObject);
41 43
42   - // router.post("/getObjectTokenByID", auth.getObjectTokenByID);
  44 + router.post("/smsVerification", auth.smsVerification);
43 45
44   - // router.post("/getUserRoles", auth.getUserRoles);
  46 + router.post("/getObjectTokenByID", auth.getObjectTokenByID);
45 47
46   - // router.post("/getRoles", auth.getRoles);
  48 + // router.get(
  49 + // '/healthMonitor',
  50 + // auth.healthMonitor
  51 + // )
47 52
48   - // router.post("/updateUserRoles", auth.updateUserRoles);
  53 + // router.head(
  54 + // '/healthMonitor',
  55 + // auth.healthMonitor
  56 + // )
49 57
50   - // router.post("/getTenant", auth.getTenant);
  58 + router.post("/getUserRoles", auth.getUserRoles);
51 59
52   - // router.post("/updateTenant", auth.updateTenant);
  60 + router.post("/getRoles", auth.getRoles);
53 61
54   - // router.get("/offer/:requestId", auth.offer);
  62 + router.post("/updateUserRoles", auth.updateUserRoles);
55 63
56   - // router.post("/onboardStatus", auth.onboardStatus);
  64 + router.post("/getTenant", auth.getTenant);
57 65
58   - // router.get("/downloadApp", auth.dowloadApp);
  66 + router.post("/updateTenant", auth.updateTenant);
59 67
60   - // router.get("/info/policy", auth.softwareLicense);
  68 + router.get("/offer/:requestId", auth.offer);
61 69
62   - // router.get("/recharge", auth.recharge);
  70 + router.post("/onboardStatus", auth.onboardStatus);
63 71
64   - // router.post("/changePassForRegister", auth.changePassForRegister);
  72 + router.get("/downloadApp", auth.dowloadApp);
65 73
66   - // router.post("/changeTenant", auth.changeTenant);
  74 + router.get("/info/policy", auth.softwareLicense);
67 75
68   - // router.post("/hr/sendRejectOffer", auth.sendRejectOffer);
  76 + // router.get("/payRoll", function (req, res, next) {
  77 + // res.send(payRoll);
  78 + // });
69 79
70   - // router.post("/hr/acceptOffer", auth.acceptOffer);
  80 + router.get("/recharge", auth.recharge);
71 81
72   - // router.post("/imTokens", auth.imTokens);
  82 + router.post("/changePassForRegister", auth.changePassForRegister);
73 83
74   - // router.post("/listChannels", auth.listChannels);
  84 + router.post("/changeTenant", auth.changeTenant);
75 85
76   - // router.post("/getTastLink", auth.getTastLink);
  86 + router.post("/hr/sendRejectOffer", auth.sendRejectOffer);
77 87
78   - // router.get("/filemeta", auth.filemeta);
  88 + router.post("/hr/acceptOffer", auth.acceptOffer);
79 89
80   - // router.get("/getCustomerQrcode", auth.getCustomerQrcode);
  90 + router.post("/imTokens", auth.imTokens);
81 91
82   - // router.get("/getPositionQrcode", auth.getPositionQrcode);
  92 + router.post("/listChannels", auth.listChannels);
83 93
84   - // router.get("/minishop/:id", auth.weidianTempLate);
  94 + router.post("/getTastLink", auth.getTastLink);
85 95
86   - // router.get("/wso-workai", auth.workaiSecurityOAuth);
  96 + router.get("/filemeta", auth.filemeta);
87 97
88   - // router.get(
89   - // "/socialwork/freedom-jobs/emps/:id/:verification",
90   - // auth.freedomJobsEmp
91   - // );
  98 + router.get("/getCustomerQrcode", auth.getCustomerQrcode);
92 99
93   - // router.get("/socialwork/freedom-jobs/emps/:id", auth.freedomJobsEmp);
  100 + router.get("/getPositionQrcode", auth.getPositionQrcode);
94 101
95   - // router.get("/getShortToken", auth.getShortToken);
  102 + router.get("/minishop/:id", auth.weidianTempLate);
96 103
97   - // router.get("/gainianrenli/*", auth.getImg);
  104 + router.get("/wso-workai", auth.workaiSecurityOAuth);
98 105
99   - // router.get("/waifu_img/*", auth.getImg);
  106 + router.get(
  107 + "/socialwork/freedom-jobs/emps/:id/:verification",
  108 + auth.freedomJobsEmp
  109 + );
100 110
101   - // router.get("/my_img/*", auth.getImg);
  111 + router.get("/socialwork/freedom-jobs/emps/:id", auth.freedomJobsEmp);
102 112
103   - // router.get("/invoice_file_icon/*", auth.getImg);
  113 + router.get("/getShortToken", auth.getShortToken);
104 114
105   - // router.get("/gainianrenli/*", auth.getImg);
106   -
107   - // router.get("/claim_icons/*", auth.getImg);
  115 + // router.get("/gainianrenli/*", controller.getImg);
  116 + // router.get("/waifu_img/*", controller.getImg);
  117 + // router.get("/my_img/*", controller.getImg);
  118 + // router.get("/invoice_file_icon/*", controller.getImg);
  119 + // router.get("/gainianrenli/*", controller.getImg);
  120 + // router.get("/claim_icons/*", controller.getImg);
108 121 };
... ...
1   -'use strict';
2   -
3   -module.exports = app => {
4   - const { router, controller } = app;
5   -
6   - router.get('/api', controller.home.index);
7   -}
\ No newline at end of file
  1 +const Service = require('egg').Service;
  2 +
  3 +class LoginService extends Service {
  4 + async localLogin(user,access_token='') {
  5 + const { ctx, config={}, app, logger } = this;
  6 + const { restful={} } = config;
  7 + const { host, port, tokenUrl,tokenMethod} = restful;
  8 + const result = await ctx.curl(`${host}:${port}${tokenUrl}`, {
  9 + method: `${tokenMethod}`,
  10 + dataType: 'json',
  11 + data: JSON.stringify(ctx.request.body),
  12 + headers: {
  13 + 'authorization': `Bearer ${access_token}`,
  14 + 'accept': 'application/json',
  15 + 'content-type': 'application/json'
  16 + },
  17 + timeout: [5000, 60000]
  18 + });
  19 + ctx.session.user_info = result.data;
  20 + return result;
  21 + }
  22 +
  23 +}
  24 +
  25 +module.exports = LoginService;
\ No newline at end of file
... ...
1 1 /* eslint valid-jsdoc: "off" */
2 2
3   -'use strict';
  3 +"use strict";
4 4
5   -const path = require('path')
  5 +const path = require("path");
6 6 /**
7 7 * @param {Egg.EggAppInfo} appInfo app info
8 8 */
9   -module.exports = appInfo => {
  9 +module.exports = (appInfo) => {
10 10 /**
11 11 * built-in config
12 12 * @type {Egg.EggAppConfig}
13 13 **/
14   - const config = exports = {};
  14 + const config = (exports = {});
15 15 // use for cookie sign key, should change to your own and keep security
16   - config.keys = appInfo.name + '_1642067379356_9612';
  16 + config.keys = appInfo.name + "_1642067379356_9612";
17 17
18 18 // add your middleware config here
19 19 config.middleware = [];
... ... @@ -24,50 +24,108 @@ module.exports = appInfo => {
24 24 };
25 25
26 26 const view = {
27   - root: path.join(appInfo.baseDir, 'app/public'),
28   - defaultViewEngine: 'nunjucks',
  27 + root: path.join(appInfo.baseDir, "app/public"),
  28 + defaultViewEngine: "nunjucks",
29 29 mapping: {
30   - '.html': 'nunjucks',
31   - }
32   - }
  30 + ".html": "nunjucks",
  31 + },
  32 + };
33 33
34 34 config.cluster = {
35 35 listen: {
36   - path: '',
  36 + path: "",
37 37 port: 8012,
38   - hostname: '0.0.0.0',
39   - }
  38 + hostname: "0.0.0.0",
  39 + },
40 40 };
41 41
42 42 config.restful = {
43   - tokenUrl: '/uaa/v1/auth/tokens',
44   - tokenMethod: 'POST',
  43 + tokenUrl: "/uaa/v1/auth/tokens",
  44 + tokenMethod: "POST",
45 45 scope: "global_access:tenant_admin",
46   - // host: 'http://118.178.181.180:20000/',
47   - host: 'http://47.110.250.177:20000/',
48   - // host: 'http://47.110.158.110:20000/',
49   - // host:'http://120.27.220.60:20000/',
50   - // host: 'http://39.104.52.206:20000/',
51   - // host: 'http://47.99.189.12:20000/',
52   - ossUrl: 'http://47.110.250.177:20000/',
53   - version: '/v1',
  46 + // host: 'http://118.178.181.180',
  47 + host: "http://47.110.250.177",
  48 + // host: 'http://47.110.158.110',
  49 + // host:'http://120.27.220.60',
  50 + // host: 'http://39.104.52.206',
  51 + // host: 'http://47.99.189.12',
  52 + ossUrl: "http://47.110.250.177:20000",
  53 + version: "/v1",
54 54 // host: '47.110.158.110',
55 55 // host: '120.27.220.60',
56   - // host: '39.104.52.206',
57   - port: 20000
  56 + // host: '39.104.52.206',
  57 + port: 20000,
58 58 };
59 59
60 60 config.static = {
61   - prefix: '/',
62   - dir: path.join(appInfo.baseDir, 'app/public'),
63   - dynamic: true,//是否緩存靜態資源
64   - preload: false,//啓動項目開啓緩存
  61 + prefix: "/",
  62 + dir: path.join(appInfo.baseDir, "app/public"),
  63 + dynamic: true, //是否緩存靜態資源
  64 + preload: false, //啓動項目開啓緩存
65 65 maxAge: 0, //緩存時間 開發建議設0 跳坑
66   - buffer: false//是否緩存到内存 默認prod 緩存
  66 + buffer: false, //是否緩存到内存 默認prod 緩存
  67 + };
  68 +
  69 + const security = {
  70 + csrf: {
  71 + xframe: {
  72 + enable: false,
  73 + },
  74 + // heaederName:'cookie',
  75 + type: "ctoken", // can be ctoken, referer, all or any, default to ctoken
  76 + useSession: false, // if useSession set to true, the secret will keep in session instead of cookie
  77 + ignoreJSON: false, // skip check JSON requests if ignoreJSON set to true
  78 + cookieName: "csrfToken", // csrf token's cookie name
  79 + sessionName: "csrfToken", // csrf token's session name
  80 + headerName: "x-csrf-token", // request csrf token's name in header
  81 + bodyName: "_csrf", // request csrf token's name in body
  82 + queryName: "_csrf", // request csrf token's name in query
  83 + refererWhiteList: [], // referer white list
  84 +
  85 + // queryName: '_csrf', // 通过 query 传递 CSRF token 的默认字段为 _csrf
  86 + // bodyName: '_csrf', // 通过 body 传递 CSRF token 的默认字段为 _csrf
  87 + ignore: (ctx) => {
  88 + if (
  89 + ctx.request.url.indexOf("/api") != -1 ||
  90 + ctx.request.url.indexOf("/doLogin") != -1
  91 + ) {
  92 + return true;
  93 + }
  94 + return false;
  95 + },
  96 + },
  97 + };
  98 +
  99 + config.connectHistoryApiFallback = {
  100 + whiteList: ["/api", "/passport", "/__webpack_hmr"],
  101 + };
  102 +
  103 + config.logger = {
  104 + consoleLevel: "DEBUG",
  105 + // dir:'/root/logs/eggjs'
  106 + };
  107 +
  108 + config.passportLocal = {
  109 + usernameField: 'username',
  110 + passwordField: 'password',
  111 + };
  112 +
  113 + //redis config
  114 + const redis = {
  115 + client: {
  116 + host: "127.0.0.1",
  117 + port: "6379",
  118 + password: "",
  119 + db: "1",
  120 + },
  121 + agent: true,
67 122 };
68 123
69 124 return {
70 125 ...config,
71 126 ...userConfig,
  127 + security,
  128 + redis,
  129 + view,
72 130 };
73 131 };
... ...
1 1 'use strict';
2 2
  3 +
  4 +
  5 +/*
  6 +* nunjucks view config
  7 +*/
  8 +const nunjucks = {
  9 + enable: true,
  10 + package: 'egg-view-nunjucks'
  11 +}
  12 +
  13 +
  14 +/*
  15 +* passport config
  16 +*/
  17 +const passport = {
  18 + enable: true,
  19 + package: 'egg-passport',
  20 +};
  21 +const passportLocal = {
  22 + enable: true,
  23 + package: 'egg-passport-local',
  24 +};
  25 +
  26 +/*
  27 +* redis config
  28 +*/
  29 +const sessionRedis = {
  30 + enable: true,
  31 + package: 'egg-session-redis',
  32 +};
  33 +
  34 +const redis = {
  35 + enable: true,
  36 + package: 'egg-redis',
  37 +};
  38 +
  39 +
3 40 /** @type Egg.EggPlugin */
4 41 module.exports = {
5 42 // had enabled by egg
6 43 // static: {
7 44 // enable: true,
8 45 // }
  46 + nunjucks,
  47 + passport,
  48 + passportLocal,
  49 + sessionRedis,
  50 + redis,
9 51 };
... ...
... ... @@ -8,18 +8,24 @@
8 8 },
9 9 "dependencies": {
10 10 "egg": "^2.15.1",
11   - "egg-scripts": "^2.11.0"
  11 + "egg-scripts": "^2.11.0",
  12 + "egg-session-redis": "^2.1.0",
  13 + "egg-view-nunjucks": "^2.3.0"
12 14 },
13 15 "devDependencies": {
14 16 "async": "^3.2.3",
15 17 "autod": "^3.0.1",
16 18 "autod-egg": "^1.1.0",
  19 + "connect-flash": "^0.1.1",
  20 + "crypto": "^1.0.1",
17 21 "egg-bin": "^4.11.0",
18 22 "egg-ci": "^1.11.0",
19 23 "egg-mock": "^3.21.0",
  24 + "egg-passport": "^2.1.1",
  25 + "egg-passport-local": "^1.2.1",
  26 + "egg-redis": "^2.4.0",
20 27 "eslint": "^5.13.0",
21 28 "eslint-config-egg": "^7.1.0",
22   - "passport": "^0.5.2",
23 29 "urlencode": "^1.1.0"
24 30 },
25 31 "engines": {
... ...
注册登录 后发表评论