1 | var task = require('./base'),
|
2 | util = require('util');
|
3 |
|
4 |
|
5 |
|
6 | var basic = module.exports = function(config) {
|
7 |
|
8 | this.init (config);
|
9 |
|
10 | };
|
11 |
|
12 | util.inherits (basic, task);
|
13 |
|
14 | util.extend (basic.prototype, {
|
15 |
|
16 | run: function() {
|
17 |
|
18 | var self = this;
|
19 | self.failed('use method [render|checkExistAndRender|checkNoExistAndRender|logout]');
|
20 |
|
21 | },
|
22 |
|
23 | render: function() {
|
24 |
|
25 | var self = this,
|
26 | user = self.user,
|
27 | sessionUID = self.sessionUID;
|
28 |
|
29 | user.sessionUIDs = sessionUID;
|
30 |
|
31 | self.completed(user);
|
32 | },
|
33 |
|
34 | checkExistAndRender: function() {
|
35 |
|
36 | var self = this,
|
37 | mongoResponse = self.mongoResponse,
|
38 | password = self.password;
|
39 |
|
40 | if (mongoResponse.data && mongoResponse.data.length) {
|
41 |
|
42 | self.user = mongoResponse.data[0];
|
43 |
|
44 | if (password == self.user.tokens.password) {
|
45 | self.render();
|
46 | } else {
|
47 | self.failed({status: 401, err: "Invalid password", errCode: 2});
|
48 | }
|
49 | } else {
|
50 | self.failed({status: 401, err: "User not found", errCode: 1});
|
51 | }
|
52 | },
|
53 |
|
54 | checkNoExistAndRender: function() {
|
55 |
|
56 | var self = this,
|
57 | mongoResponse = self.mongoResponse,
|
58 | fields = self.fields;
|
59 |
|
60 | if (mongoResponse.err || mongoResponse.total == 0 || mongoResponse.data.length == 0) {
|
61 |
|
62 |
|
63 |
|
64 | self.user = {
|
65 | name: fields.username,
|
66 | sessionUIDs: [],
|
67 | tokens: {
|
68 | password: fields.password
|
69 | }
|
70 | };
|
71 | self.render();
|
72 |
|
73 | } else {
|
74 |
|
75 | self.failed({status: 401, err: "User already exist", errCode: 3});
|
76 |
|
77 | }
|
78 | },
|
79 |
|
80 | logout: function() {
|
81 | var self = this,
|
82 | defaultRedirectUrl = self.defaultRedirectUrl,
|
83 | redirectUrl = self.req.url.query && self.req.url.query.redirectUrl;
|
84 |
|
85 | self.completed(redirectUrl || defaultRedirectUrl || '/');
|
86 | }
|
87 | });
|