UNPKG

shark-node-openid

Version:

shark-node-openid is used for netease's openid.

76 lines (65 loc) 2.29 kB
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',OpenIDDecoractor.needLogin(function(req,res,next){ res.send('验证成功'); })); //发送静态文件 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', OpenIDDecoractor.ajaxNeedLogin(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); })