zengyicheng 1 vuosi sitten
vanhempi
commit
e4192111e1
1 muutettua tiedostoa jossa 37 lisäystä ja 0 poistoa
  1. 37 0
      ssti.js

+ 37 - 0
ssti.js

@@ -34,6 +34,43 @@ function asynnext(req, res, next) {
         //resolve(true);aa
     });
 }
+
+const passport = require('passport');
+const CASStrategy = require('passport-cas').Strategy;
+
+// 配置CAS策略
+passport.use(new CASStrategy({
+    casURL: 'http://authserver.ssti.net.cn/authserver',
+    serviceURL: 'http://authserver.ssti.net.cn/authserver/login',
+    validateURL: 'http://authserver.ssti.net.cn/authserver/serviceValidate',
+    ssoBaseURL: 'http://authserver.ssti.net.cn/authserver',
+    serverBaseURL: 'https://cxcy.ssti.net.cn'
+}, (profile, done) => {
+    // 在这里可以处理CAS认证成功后的逻辑
+    // 例如,可以将用户信息存储在session中
+    done(null, profile);
+}));
+
+// 初始化Passport.js中间件
+app.use(passport.initialize());
+app.use(passport.session());
+
+// 配置登录路由
+app.get('/login', passport.authenticate('cas'));
+
+// 配置CAS回调路由
+app.get('/login/callback', passport.authenticate('cas', {
+    successRedirect: '/profile',
+    failureRedirect: '/login'
+}));
+
+// 配置受保护的路由
+app.get('/profile', (req, res) => {
+    // 在这里可以通过req.user获取CAS认证的用户信息
+    res.send('Welcome, ' + req.user);
+});
+
+
 /*測試*/
 router.route('/a').all((req, res, next) => {
     var json = GetData(req);