nodejs实现cas客户端

const express = require('express');
const ConnectCas = require('connect-cas2');
const bodyParser = require('body-parser');
const session = require('express-session');
const cookieParser = require('cookie-parser');
const MemoryStore = require('session-memory-store')(session);

const app = express();

app.use(cookieParser());
app.use(session({
    name: 'NSESSIONID',
    secret: 'Hello I am a long long long secret',
    //resave: true,//添加这行
    //saveUninitialized: true,//添加这行
    store: new MemoryStore()  // or other session store
}));

const casClient = new ConnectCas({
    //debug: true,
    ignore: [
        /\/ignore/
    ],
    match: [],
    servicePrefix: 'http://130.51.23.165:3000',
    //servicePrefix: 'http://localhost:3000',
    serverPath: 'http://130.51.23.165:8180',
    paths: {
        validate: '/cas/validate',
        //validate: '/index',
        serviceValidate: '/cas/serviceValidate',
        proxy: '',
        login: '/cas/login',
        logout: '/cas/logout',
        proxyCallback: ''
    },
    ///proxy: false,
    redirect: false,
    gateway: false,
    renew: false,
    slo: true,
    cache: {
        enable: false,
        ttl: 5 * 60 * 1000,
        filter: []
    },
    fromAjax: {
        header: 'x-client-ajax',
        status: 418
    }
});

app.use(casClient.core());

// NOTICE: If you want to enable single sign logout, you must use casClient middleware before bodyParser.
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));

app.get('/logout', casClient.logout());

// or do some logic yourself
app.get('/logout', function (req, res, next) {
    // Do whatever you like here, then call the logout middleware
    casClient.logout()(req, res, next);
});

app.get('/', function (req, res) {
    // console.log("login.req.session.cas is:")
    // console.log(req.session.cas);

    if (!req.session.cas.user) {
        return next();
    }

    console.log("login.req.session.cas.user is:")
    console.log(req.session.cas.user);

    const username = req.session.cas.user;
    req.session.loggedIn = true;
    req.session.username = username;
    // ...
    //return next();
    // Great, we logged in, now redirect back to the home page.
    //return res.send('<p>You are logged in.</p>');
    return res.send('<p>You are logged in. Your username is ' + req.session.cas.user + '. <a href="/logout">Log Out</a></p>');
});

app.listen(3000);

转载于:https://my.oschina.net/u/2464371/blog/2875099

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值