예제 #1
0
        public async Task <IActionResult> GetToken(string uscId)
        {
            if (string.IsNullOrEmpty(uscId))
            {
                return(BadRequest("USCID parameter is required"));
            }
            if (uscId.Length != 10)
            {
                return(BadRequest("USCID length must be 10"));
            }

            var user = await _authService.Login(uscId);

            if (user == null)
            {
                return(Unauthorized());
            }

            var refreshExpiration = DateTime.UtcNow.AddDays(1);
            var refreshToken      = _tokenService.CreateRefreshToken(uscId, refreshExpiration);

            _tokenService.AddRefreshCookie(Response.Cookies, refreshToken, refreshExpiration);

            return(Ok(_tokenService.CreateToken(uscId, DateTime.UtcNow.AddMinutes(_tokenExpirationMinutes),
                                                user.Claims)));
        }