Example #1
0
        public async Task <Models.Token> GetRefreshToken(Models.AccessCred cred)
        {
            // Ricavo il refresh token
            Models.RefreshToken refT = await GetRefToken(cred.Refresh_token);

            // Controllo refresh token
            if (refT != null)
            {
                // Controllo se il refresh token รจ scaduto
                if (DateTime.Compare(refT.DateExpires, DateTime.Now) > 0)
                {
                    // Ricavo i dati utente
                    Models.User user = GetUser(refT.UserId);

                    return(await CreateToken(user.UserId, user.RoleId, cred.Refresh_token));
                }
                else
                {
                    // Elimino il refresh token scaduto
                    await DeleteRefreshToken(cred.Refresh_token);
                }
            }

            return(null);
        }
Example #2
0
        public async Task <IActionResult> Logout(Models.AccessCred cred)
        {
            int idUser = Convert.ToInt32(HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value);

            await repo.SignOut(cred.Refresh_token, idUser);

            return(Ok());
        }
Example #3
0
        public async Task <Models.Token> GetToken(Models.AccessCred _auth)
        {
            Models.User user = await ValidateUser(_auth.Username, _auth.Password);

            // Controllo login
            if (user != null)
            {
                await UpdateDateLogin(user.UserId);

                return(await CreateToken(user.UserId, user.RoleId, ""));
            }

            return(null);
        }
Example #4
0
        public async Task <IActionResult> Refresh([FromBody] Models.AccessCred cred)
        {
            Models.Token token = null;

            if (cred.Grant_type == "refresh_token")
            {
                token = await repo.GetRefreshToken(cred);
            }

            if (token == null)
            {
                return(BadRequest(new { message = "Refresh token non valido." }));
            }
            else
            {
                return(Ok(token));
            }
        }
Example #5
0
        public async Task <IActionResult> Login([FromBody] Models.AccessCred cred)
        {
            Models.Token token = null;

            if (cred.Grant_type == "password")
            {
                token = await repo.GetToken(cred);
            }

            if (token == null)
            {
                return(BadRequest(new { message = "Utente o password non corretti." }));
            }
            else
            {
                return(Ok(token));
            }
        }