node.js+express后端的单点登录

var express = require(‘express’);
var ConnectCas = require(‘connect-cas2’);
// 用户解析客户端请求的body中的内容,内部使用json编码处理,url编码处理以及对文件的上传处理
var bodyParser = require(‘body-parser’);
// session运行在服务器端,当客户端第一次访问服务器时,可以将客户的信息保存,
//当浏览器访问服务器并第一次请求时,服务器端会创建一个session对象,生成一个类似于key,value的键值对
var session = require(‘express-session’);
// 用于解析cookie的中间件,req.cookie.xxx可以访问到cookie的值
var cookieParser = require(‘cookie-parser’);
var MemoryStore = require(‘session-memory-store’)(session);

var app = express();

app.use(cookieParser());
app.use(session({
name: ‘NSESSIONID’,//回客户端key的名称,默认为connect.sid,也可以设置
secret: ‘Hello I am a long long long secret’,//一个string类型的字符串,作为服务器端生成session签名
store: new MemoryStore() // or other session store
}));

options.serverPath{String}(必需)

CAS服务器的根路径。例如:https://www.your-cas-server-path.com

// 例如:如果将options.paths.login设置为’/cas/login’,则options.serverPath设置为
// ‘https://www.your-cas-server-path.com’,则CAS服务器登录路径将为
// 'https://www.your-cas-server-path.com/cas/login”。

// options.servicePrefix{String}(必需)
// CAS客户端的根路径(您的网站根)。
// CAS客户端的每个路径都将使用此路径作为根路径。
// 例如:如果将options.paths.validate设置为’/cas/validate’,
// 则options.servicePrefix设置为’http://localhost:3000’,
// 则客户端验证路径将为’http://localhost:3000/cas/validate”。
var casClient = new ConnectCas({
debug: true,
ignore: [
//ignore/
],
match: [],
//serve代表的是服务器,service是服务,代表的功能
//cas客户端的根路径
servicePrefix: ‘http://localhost:3000’,
//cas服务器的根路径
serverPath: ‘http://your-cas-server.com’,
paths: {
validate: ‘/cas/validate’,
serviceValidate: ‘/buglycas/serviceValidate’,
proxy: ‘/buglycas/proxy’,
login: ‘/buglycas/login’,
logout: ‘/buglycas/logout’,
proxyCallback: ‘/buglycas/proxyCallback’
},
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);
});

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值