Esempio n. 1
0
        public async Task<ActionResult<TokenResponse>> Login([FromBody] AuthRequest request)
        {
            var hashedPassword = request.Password.Encrypt();
            var existingUsers = await UserAccess.GetByUsernamePassword(request.Username, hashedPassword);
            var user = existingUsers.First();

            var expiry = DateTime.Now.AddDays(1);
            var token = AuthenticationUtilities.GenerateToken(user.UserId, user.Username, expiry);
            user.Token = token;

            await user.UpdateAsync();

            var response = new TokenResponse()
            {
                UserId = user.UserId,
                Token = token,
                Expires = expiry.ToUniversalTime(),
                Reported = user.AtRisk
            };

            return new ActionResult<TokenResponse>(response);
        }