zahmis 5 лет назад
Родитель
Сommit
04d3233560

+ 4 - 3
packages/slack/src/utils/verifying-is-slack-request.ts

@@ -6,9 +6,10 @@ import { stringify } from 'qs';
    * See: https://api.slack.com/authentication/verifying-requests-from-slack
    */
 // TODO GW-5628 move this to slack package
-export const verifyingIsSlackRequest = (req, res, signingSecret):string => {
+export const verifyingIsSlackRequest = (req, res, next):string => {
   // Temporary
-  req.signingSecret = signingSecret;
+
+console.log(req.signingSecret);
 
   // take out slackSignature and timestamp from header
   const slackSignature = req.headers['x-slack-signature'];
@@ -29,7 +30,7 @@ export const verifyingIsSlackRequest = (req, res, signingSecret):string => {
 
   // compare growiSignature and slackSignature
   if (timingSafeEqual(Buffer.from(growiSignature, 'utf8'), Buffer.from(slackSignature, 'utf8'))) {
-    return;
+    return next();
 
   }
 

+ 7 - 3
src/server/routes/apiv3/slack-bot.js

@@ -32,9 +32,13 @@ module.exports = (crowi) => {
     return next();
   }
 
-  router.post('/', /* verificationRequestUrl, /* verificationAccessToken, */ async(req, res) => {
+  const slackbotSigningSecret = (req, res, next) => {
+    req.signingSecret = crowi.configManager.getConfig('crowi', 'slackbot:signingSecret');
+    return next();
+  };
+
+  router.post('/', slackbotSigningSecret, verifyingIsSlackRequest, /* verificationRequestUrl, /* verificationAccessToken, */ async(req, res) => {
 
-    verifyingIsSlackRequest(req, res, crowi.configManager.getConfig('crowi', 'slackbot:signingSecret'));
 
     // Send response immediately to avoid opelation_timeout error
     // See https://api.slack.com/apis/connections/events-api#the-events-api__responding-to-events
@@ -98,7 +102,7 @@ module.exports = (crowi) => {
 
   router.post('/interactive', verificationRequestUrl, async(req, res) => {
 
-    verifyingIsSlackRequest(req, res, crowi.configManager.getConfig('crowi', 'slackbot:signingSecret'));
+    // verifyingIsSlackRequest(req, res, crowi.configManager.getConfig('crowi', 'slackbot:signingSecret'));
 
     // Send response immediately to avoid opelation_timeout error
     // See https://api.slack.com/apis/connections/events-api#the-events-api__responding-to-events