shark-node-openid
Version:
shark-node-openid is used for netease's openid.
92 lines (77 loc) • 2.63 kB
JavaScript
var express = require('express');
var session = require('express-session');
var SQLiteStore = require('connect-sqlite3')(session);
var crypto = require('crypto');
//添加数据库文件依赖
var fs = require("fs");
var jsPath ='/scripts',
cssPath ='/styles';
var app = express();
var OpenIDDecoractor = require("../../index");
app.use(session({
secret: '12345',
name: 'testapp', //这里的name值得是cookie的name,默认cookie的name是:connect.sid
cookie: {maxAge: 80000 }, //设置maxAge是80000ms,即80s后session和相应的cookie失效过期
resave: false,
saveUninitialized: true,
store: new SQLiteStore
}));
OpenIDDecoractor.init(app, 'express');
app.get(['/home', '/hello'], OpenIDDecoractor.authLogin());
app.get('/xhr/getUserInfo.do', OpenIDDecoractor.ajaxAuthLogin());
var ajaxAuthLoginConfig = {
error: {
code: 403,
message: "you need openidLogin"
}
}
app.get('/xhr/getUserInfo1.do', OpenIDDecoractor.ajaxAuthLogin(ajaxAuthLoginConfig));
app.get('/home',function(req,res,next){
res.send('验证成功');
});
app.get('/hello', function(req, res, next){
res.send('hello world');
});
//发送静态文件
var sendFile = function(staticPath){
return function(req,res,next){
var reqPath = req.path === '/' ? '/index.html' : req.path;
var f = "webapp" + staticPath + reqPath;
if(fs.existsSync(f)){
if(/\.html$/.test(reqPath)){
res.set('Content-Type','text/html');
res.send(fs.readFileSync(f,'UTF-8'));
}else if(/\.js$/.test(reqPath)){
res.set('Content-Type','text/javascript');
res.send(fs.readFileSync(f,'UTF-8'));
}else if(/\.css$/.test(reqPath)){
res.set('Content-Type','text/css');
res.send(fs.readFileSync(f,'UTF-8'));
}
}
next();
}
}
app.use(jsPath,sendFile(jsPath));
app.use(cssPath,sendFile(cssPath));
app.use('/index',sendFile(''));
/* 此处实例了ajax接口形式的openid权限控制 */
app.use('/xhr/getUserInfo.do', function(req, res, next){
var obj = {
"code": 200,
"data": {
"userId": 0,
"userName": "stone-jin"
}
};
res.send(obj);
});
//监听窗口
var server = app.listen(8000, function () {
var host = server.address().address;
var port = server.address().port;
console.log(host);
var openurl = require('openurl');
openurl.open('http://127.0.0.1:' + port + "/home");
console.log("应用实例,访问地址为 http://%s:%s",host,port);
})