Пример #1
0
        public async Task <IActionResult> GetAccessToken([FromBody] AccessTokenRequest request)
        {
            try
            {
                // TODO Review the amount of time an access token should live for
                int      accessTokenMinutes = 240;
                DateTime expiryDate         = DateTime.Now.AddMinutes(accessTokenMinutes);

                AccessTokenResponse tokenResponse = new AccessTokenResponse
                {
                    token      = await _tokenManager.CreateAccessTokenWithExpiry(request.refreshToken, expiryDate),
                    token_type = "access",

                    // ExpiresIn should be in seconds format, so multiply minutes by 60
                    ExpiresIn = accessTokenMinutes * 60
                };

                return(Ok(tokenResponse));
            }
            catch (Exception)
            {
                // FIXME Token validation and database exception differences
                return(BadRequest(new APIError("An unknown error occurred.", "ERR_UNKNOWN")));
            }
        }