public async Task <UserCredentials> CreateUserCredentials(string key, bool logToConsole = true) { var request = new CreateUserTokenRequest { Key = key }; var token = await Post <CreateUserTokenRequest, UserCredentials>(request, "tokens/user"); if (logToConsole) { Console.WriteLine($"Created Token for User '{key}': {ToJson(token)}"); } ; return(token); }
public async Task CreateUserToken(CreateUserTokenRequest request) { var sqlStoredProc = "sp_user_token_create"; var response = await DapperAdapter.GetFromStoredProcAsync <int> ( storedProcedureName : sqlStoredProc, parameters : request, dbconnectionString : DefaultConnectionString, sqltimeout : DefaultTimeOut, dbconnection : _connection, dbtransaction : _transaction); if (response == null || response.First() == 0) { throw new System.Exception("No items have been created"); } }
public async Task <IActionResult> CreateUserToken([FromBody] CreateUserTokenRequest request) { try { // validate that the user exists in the database if (!await _hiarcDatabase.IsValidUserKey(request.Key)) { _logger.LogWarning($"A token was requested for user key '{request.Key}' but the user key does not exist"); return(StatusCode(StatusCodes.Status404NotFound)); } var utcNow = DateTime.UtcNow; var expiresInMinutes = request.ExpirationMinutes ?? _hiarcSettings.JWTTokenExpirationMinutes; var tokenHandler = new JwtSecurityTokenHandler(); var jwtKey = Encoding.ASCII.GetBytes(_hiarcSettings.JwtSigningKey); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.Role, Auth.USER_ROLE_CLAIM_VALUE), new Claim(ClaimTypes.Name, request.Key) }), Expires = utcNow.AddMinutes(expiresInMinutes), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(jwtKey), SecurityAlgorithms.HmacSha256Signature) }; var token = tokenHandler.CreateToken(tokenDescriptor); var JWT = tokenHandler.WriteToken(token); var credentials = new UserCredentials { UserKey = request.Key, BearerToken = JWT, CreatedAt = utcNow, ExpiresAt = tokenDescriptor.Expires.Value }; return(Ok(credentials)); } catch (Exception ex) { return(BuildErrorResponse(ex, _logger)); } }