久保田隼基 7 лет назад
Родитель
Сommit
8c05d657e7
1 измененных файлов с 34 добавлено и 0 удалено
  1. 34 0
      lib/service/passport.js

+ 34 - 0
lib/service/passport.js

@@ -334,6 +334,40 @@ class PassportService {
     debug('GitHubStrategy: setup is done');
   }
 
+  setupTwitterStrategy() {
+    // check whether the strategy has already been set up
+    if (this.isTwitterStrategySetup) {
+      throw new Error('TwitterStrategy has already been set up');
+    }
+
+    const config = this.crowi.config;
+    const Config = this.crowi.model('Config');
+    //this
+    const isTwitterEnabled = Config.isEnabledPassportTwitter(config);
+
+    // when disabled
+    if (!isTwitterEnabled) {
+      return;
+    }
+
+    debug('TwitterStrategy: setting up..');
+    passport.use(new TwitterStrategy({
+      clientID: config.crowi['security:passport-twitter:clientId'] || process.env.OAUTH_TWITTER_CLIENT_ID,
+      clientSecret: config.crowi['security:passport-twitter:clientSecret'] || process.env.OAUTH_TWITTER_CLIENT_SECRET,
+      callbackURL: config.crowi['security:passport-twitter:callbackUrl'] || process.env.OAUTH_TWITTER_CALLBACK_URI,
+      skipUserProfile: false,
+    }, function(accessToken, refreshToken, profile, done) {
+      if (profile) {
+        return done(null, profile);
+      }
+      else {
+        return done(null, false);
+      }
+    }));
+
+    this.isTwitterStrategySetup = true;
+    debug('TwitterStrategy: setup is done');
+  }
   /**
    * reset GoogleStrategy
    *