Exemple #1
0
        public IHttpActionResult LoginProfessor(Professor professor)
        {
            if (professor.email == null || professor.senhaText == null)
            {
                return(Content(HttpStatusCode.BadRequest, new { message = "E-mail e/ou senha em branco" }));
            }
            else
            {
                Professor _professor = db.Professors
                                       .Where(p => p.email == professor.email)
                                       .FirstOrDefault();
                byte[] pwProfessor = new SHA1CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(professor.senhaText));
                if (pwProfessor.SequenceEqual(_professor.senha))
                {
                    // Pega token do Header
                    string token       = Request.Headers.Authorization.ToString().Substring(6);
                    Token  tokenEntity = db.Tokens
                                         .Where(t => t.token == token)
                                         .FirstOrDefault();

                    // Gera novo token com codProfessor embutido
                    TokenProf tokenProf = new TokenProf(_professor.codProfessor, token);
                    byte[]    newToken  = tokenProf.GenerateToken(tokenProf);

                    tokenEntity.codProfessor    = _professor.codProfessor;
                    db.Entry(tokenEntity).State = EntityState.Modified;
                    db.SaveChanges();

                    return(Content(HttpStatusCode.OK, new { _professor, newToken }));
                }
                else
                {
                    return(Content(HttpStatusCode.Unauthorized, new { message = "E-mail e/ou senha incorretos" }));
                }
            }
        }