Esempio n. 1
0
        public async Task <ResponseLogin> Login(RequestLogin user)
        {
            var existingUser = await userRepository.GetUser(user.Email);

            if (existingUser != null)
            {
                if (existingUser.Password == Crypto.HashSha256(user.Password))
                {
                    string generatedToken = Convert.ToBase64String(Guid.NewGuid().ToByteArray());
                    var    token          = new UserToken
                    {
                        LastAccessed = DateTime.UtcNow,
                        Username     = user.Email,
                        Token        = generatedToken
                    };
                    await userTokenRepository.CreateSync(token);

                    return(new ResponseLogin
                    {
                        UserDetails = existingUser,
                        UserToken = token
                    });
                }
            }
            throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.BadRequest)
            {
                Content      = new StringContent("Invalid username or password."),
                ReasonPhrase = "Invalid username or password."
            });
        }