slack-app-integration.js 855 B

123456789101112131415161718192021222324
  1. const crypto = require('crypto');
  2. const mongoose = require('mongoose');
  3. const schema = new mongoose.Schema({
  4. tokenGtoP: { type: String, required: true, unique: true },
  5. tokenPtoG: { type: String, required: true, unique: true },
  6. });
  7. class SlackAppIntegration {
  8. static generateAccessToken() {
  9. const hasher1 = crypto.createHash('sha512');
  10. const hasher2 = crypto.createHash('sha512');
  11. const tokenGtoP = hasher1.update(new Date().getTime().toString() + process.env.SALT_FOR_GTOP_TOKEN);
  12. const tokenPtoG = hasher2.update(new Date().getTime().toString() + process.env.SALT_FOR_PTOG_TOKEN);
  13. return [tokenGtoP.digest('base64'), tokenPtoG.digest('base64')];
  14. }
  15. }
  16. module.exports = function(crowi) {
  17. SlackAppIntegration.crowi = crowi;
  18. schema.loadClass(SlackAppIntegration);
  19. return mongoose.model('SlackAppIntegration', schema);
  20. };