-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
71 lines (55 loc) · 2.18 KB
/
app.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
//configure as per your requirements
var redirect = "http://localhost:3001/";
var apikey = '1234567890abcdef';
var sitekey = 'localhost';
//users // I have hardcoded this but you can also retrieve from db (remember this is mockid not the actual)
var users = {
'alexis':{ uid : 'alexis.duque',user_email: '[email protected]',user_name :'Alexis',password : 'duque' },
'shekhar':{ uid : 'shekhar' ,user_email: '[email protected]', user_name: 'ShekharReddy', password : 'shekhar' },
'burke':{ uid : 'burke', user_email: '[email protected]',user_name :'Burke',password : 'mamlin' },
'user':{ uid : 'user' ,user_email : '[email protected]', user_name: 'OpenMRSUser', password : 'user' }
};
var crypto = require('crypto');
var express = require('express');
var path = require('path');
var app = express();
var bodyParser = require('body-parser');
//multipass registering
var Multipass = require('atlas-node-multipass');
var multipass = new Multipass(apikey, sitekey);
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(express.static(__dirname));
//Routes
app.get('/authenticate/atlas',function(req, res){
res.redirect('/')
});
app.get('/disconnect', function (req, res) {
res.redirect(redirect);
});
//get '/'
app.get('/', function (req, res) {
res.sendFile(path.join(__dirname + '/auth.html'));
});
//post '/'
app.post('/', function (req, res) {
if(users[req.body.user]&&(users[req.body.user].password==req.body.password)){
obj = users[req.body.user];
var token = multipass.encode(obj);
// signature
var signature = crypto.createHmac('sha1', apikey)
.update(token)
.digest('base64');
URL = redirect+'auth/multipass/callback?multipass='+token+"&signature="+signature;
res.redirect(URL);
}
else
{
//alert("wrong credentials please check the details and sign in again"); removing this line due to an error : REFERENCE ERROR: alert is not defined
res.sendFile(path.join(__dirname+ '/auth.html'))
}
});
var port = process.env.PORT || 8080;
app.listen(port, function(){
console.log('http://127.0.0.1:'+port+'/');
});