Yuki Takei 4 лет назад
Родитель
Сommit
654265b92f
1 измененных файлов с 10 добавлено и 12 удалено
  1. 10 12
      packages/app/src/server/models/slack-app-integration.js

+ 10 - 12
packages/app/src/server/models/slack-app-integration.js

@@ -11,17 +11,14 @@ const schema = new mongoose.Schema({
 
 class SlackAppIntegration {
 
-  static setSalts(saltForGtoP, saltForPtoG) {
-    this.saltForGtoP = saltForGtoP;
-    this.saltForPtoG = saltForPtoG;
-  }
+  crowi;
 
-  static generateAccessTokens() {
+  static generateAccessTokens(saltForGtoP, saltForPtoG) {
     const now = new Date().getTime();
     const hasher1 = crypto.createHash('sha512');
     const hasher2 = crypto.createHash('sha512');
-    const tokenGtoP = hasher1.update(`gtop${now.toString()}${this.saltForGtoP}`).digest('base64');
-    const tokenPtoG = hasher2.update(`ptog${now.toString()}${this.saltForPtoG}`).digest('base64');
+    const tokenGtoP = hasher1.update(`gtop-${saltForGtoP}-${now.toString()}`).digest('base64');
+    const tokenPtoG = hasher2.update(`ptog-${saltForPtoG}-${now.toString()}`).digest('base64');
     return [tokenGtoP, tokenPtoG];
   }
 
@@ -31,8 +28,12 @@ class SlackAppIntegration {
     let tokenPtoG;
     let generateTokens;
 
+    // get salt strings
+    const saltForGtoP = this.crowi.configManager.getConfig('crowi', 'slackbot:withProxy:saltForGtoP');
+    const saltForPtoG = this.crowi.configManager.getConfig('crowi', 'slackbot:withProxy:saltForPtoG');
+
     do {
-      generateTokens = this.generateAccessTokens();
+      generateTokens = this.generateAccessTokens(saltForGtoP, saltForPtoG);
       tokenGtoP = generateTokens[0];
       tokenPtoG = generateTokens[1];
       // eslint-disable-next-line no-await-in-loop
@@ -46,11 +47,8 @@ class SlackAppIntegration {
 }
 
 module.exports = function(crowi) {
-  // get salt strings
-  const saltForGtoP = crowi.configManager.getConfig('crowi', 'slackbot:withProxy:saltForGtoP');
-  const saltForPtoG = crowi.configManager.getConfig('crowi', 'slackbot:withProxy:saltForPtoG');
 
-  SlackAppIntegration.setSalts(saltForGtoP, saltForPtoG);
+  SlackAppIntegration.crowi = crowi;
 
   schema.loadClass(SlackAppIntegration);
   return mongoose.model('SlackAppIntegration', schema);