-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathUsuario.js
More file actions
129 lines (110 loc) · 3.95 KB
/
Copy pathUsuario.js
File metadata and controls
129 lines (110 loc) · 3.95 KB
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
120
121
122
123
124
125
126
127
128
129
var express = require('express');
var dbfun = require('./db.js');
var jwt = require('jsonwebtoken');
var RoutUsuario = express.Router();
var sha1 = require('sha1');
RoutUsuario.post('/auth', function(req, res) {
var usuariof = new dbfun.Usuario();
var r = /^(?:(?:[\w`~!#$%^&*\-=+;:{}'|,?\/]+(?:(?:\.(?:"(?:\\?[\w`~!#$%^&*\-=+;:{}'|,?\/\.()<>\[\] @]|\\"|\\\\)*"|[\w`~!#$%^&*\-=+;:{}'|,?\/]+))*\.[\w`~!#$%^&*\-=+;:{}'|,?\/]+)?)|(?:"(?:\\?[\w`~!#$%^&*\-=+;:{}'|,?\/\.()<>\[\] @]|\\"|\\\\)+"))@(?:[a-zA-Z\d\-]+(?:\.[a-zA-Z\d\-]+)*|\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\])$/;
//Com a expressao regular r, podemos garantir que a string extraida será um email válido.
var email = req.body.email.match(r);
var senha = sha1(req.body.senha);
if (email != null) {
email = email[0];
usuariof.find('all', {
fields: ['email', 'idUser', 'nome', 'senha'],
where: "email=\"" + email + "\""
}, function(err, rows, fields) {
if (err) throw err;
var user = null;
if (rows[0]) {
user = {
id: rows[0].idUser
};
}
if (!user) {
res.json({
status: false,
message: 'Erro. Usuário não encontrado.'
});
} else if (user) {
//verifica se a senha esta correta
if (rows[0].senha != String(senha)) {
res.json({
status: false,
message: 'Erro. Senha Errada.'
});
} else {
// Se a conta for encontrada e a senha bater com a verdadeira
// Cria uma token
var token = jwt.sign(user, dbfun.secret, {
expiresIn: 24 * 60 * 60 * 1 // Expira em 1 hours
});
res.json({
status: true,
message: 'Token Gerada',
token: token,
nome: user.nome,
id: user.id
});
}
}
})
} else {
res.json({
status: false,
message: 'Erro. Usuário não encontrado.'
});
}
});
RoutUsuario.use(function(req, res, next) {
var token = req.body.token || req.query.token || req.headers['x-access-token'];
if (token) {
// Faz verificação da Token
jwt.verify(token, dbfun.secret, function(err, token_decoded) {
if (err) {
// Se a verificação falhar
return res.json({
status: false,
message: "Falha para autentificar a Token."
});
} else {
console.log("token Ok")
// Token é verificada, Salva as informações
req.token = token_decoded;
req.user = token_decoded.user;
req.authenticated = true;
next();
}
});
}else{
res.json({
status: false,
message: "Falha para autentificar a Token."
})
}
});
RoutUsuario.get('/ranking', function(req,res){
var ranking = new dbfun.Ranking();
});
RoutUsuario.post('/criarTarefa', function(req,res){
});
RoutUsuario.get('/classes', function(req,res){
var classe = new dbfun.Classe();
classe.find('all', {
fields: "idClasse,nomeClasse",
}, function(err, rows, fields) {
if (err) throw err;
res.json(rows);
});
});
RoutUsuario.get('/tarefas', function(req,res){
var tarefa = new dbfun.Tarefa();
var status = 1
var qr = "SELECT t.idTarefa, t.titulo, t.dataCriacao, t.dataLimite FROM tarefa as t where idStatusT = "+ status +" order by (t.idTarefa)"
tarefa.query(qr ,function(err, rows, fields) {
if (err) throw err;
res.json(rows);
});
});
module.exports = RoutUsuario;