|
@@ -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);
|