forked from taskrabbit/ReactNativeSampleApp
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsecured.js
More file actions
31 lines (28 loc) · 762 Bytes
/
secured.js
File metadata and controls
31 lines (28 loc) · 762 Bytes
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
var passport = require("koa-passport");
var BearerStrategy = require('passport-http-bearer').Strategy;
var User = require("./models").User;
passport.use(new BearerStrategy({},
function(token, done) {
user = User.findByToken(token);
if (user) return done(null, user);
else return done(null, false);
}
));
var secured = function *(next) {
var _this = this;
yield passport.authenticate("bearer", { session: false },
function*(err, user, info) {
if (err) {
throw err;
}
else if (!user) {
_this.status = 401;
_this.body = {error: "Please log in"}
}
else {
_this.passport.user = user;
yield next;
}
});
};
module.exports = secured;