-
Notifications
You must be signed in to change notification settings - Fork 2
/
server.js
119 lines (90 loc) · 3.74 KB
/
server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
var express = require('express');
var mongoose = require('mongoose');
var bodyParser = require('body-parser');
var passport = require('passport');
var session = require('express-session');
var petController = require('./controller/pet');
var userController = require('./controller/user');
var authController = require('./controller/auth');
var clientController = require('./controller/client');
var oauth2Controller = require('./controller/oauth2');
//连接数据库
mongoose.connect('mongodb://127.0.0.1:27017/petshot', { useMongoClient: true });
mongoose.Promise = global.Promise;
var app = express();
var port = process.env.PORT || '3090';
var router = express.Router();
// 配置模板引擎
app.set('view engine', 'ejs');
// 注:中间件位置很重要
// app.use(bodyParser.raw);
// app.use(bodyParser.json);
// 解析 application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({
extended: true
}));
// 配置session
app.use(session({
secret: 'a4f8071f-4447-c873-8aa2', //String类型的字符串,作为服务器端生成session的签名
saveUninitialized: true, //初始化session时是否保存到存储
resave: true //(是否允许)当客户端并行发送多个请求时,其中一个请求在另一个请求结束时对session进行修改覆盖并保存
}));
// 应用中使用passport中间页
app.use(passport.initialize());
// 初始化session存储验证状态
app.use(passport.session());
router.get('/', function(req, res) {
res.json({ "message": "欢迎访问" })
})
// 给路由设定根路径为/api
app.use('/api', router);
// router.get('/callback',function(req,res){
// var code = req.query.code;
// var session = req.session;
// res.render('dialog', {
// transactionID: req.oauth2.transactionID,
// user: config.userid,
// client: req.oauth2.client
// });
// })
// router.route('/authenticate')
// .post(userController.authenticate);
// router.route('/pets')
// .post(petController.postPets)
// .get(petController.getPets);
// router.route('/pets/:pet_id')
// .get(petController.getPet)
// .put(petController.updatePet)
// .delete(petController.deletePet);
// 使用BasicStrategy
// router.route('/pets')
// .post(authController.isAuthenticated, petController.postPets)
// .get(authController.isAuthenticated, petController.getPets);
// router.route('/pets/:pet_id')
// .get(authController.isAuthenticated, petController.getPet)
// .put(authController.isAuthenticated, petController.updatePet)
// .delete(authController.isAuthenticated, petController.deletePet);
// 使用BearerStrategy
router.route('/pets')
.post(authController.isBeareAuthenticated, petController.postPets)
.get(authController.isBeareAuthenticated, petController.getPets);
router.route('/pets/:pet_id')
.get(authController.isBeareAuthenticated, petController.getPet)
.put(petController.updatePet)
.delete(authController.isBeareAuthenticated, petController.deletePet);
router.route('/users')
.post(userController.postUsers)
.get(authController.isAuthenticated, userController.getUsers); // 使用BasicStrategy
router.route('/clients')
.post(authController.isAuthenticated, clientController.postClients)
.get(authController.isAuthenticated, clientController.getClients);
// 授权服务
router.route('/oauth2/authorize')
.get(authController.isAuthenticated, oauth2Controller.authorization) // 启动授权过程
.post(authController.isAuthenticated, oauth2Controller.decision); // 用户决定后的调用
// 访问令牌
router.route('/oauth2/token')
.post(authController.isClientAuthenticated, oauth2Controller.token); // 得到code后的调用
app.listen(port, function() {
console.log('server is running at http://localhost:3090');
});