private void cacheResult(string pit, PlayerIdentityToken decodedPit) { if (_cacheClient == null) { return; } var offset = DateTimeOffset.FromUnixTimeSeconds(decodedPit.ExpiryTime.Seconds); var expiryFromNow = offset.Subtract(DateTime.Now); var cacheExpiry = _defaultCacheExpiry; if (expiryFromNow < cacheExpiry) { cacheExpiry = expiryFromNow; } try { var jsonPit = JsonFormatter.Default.Format(decodedPit); var key = getCacheKey(pit); _cacheClient.StringSet(key, jsonPit, cacheExpiry); } catch { // TODO: log this but don't block on a broken cache } }
private static string ExtractPlayerIdentifier(PlayerIdentityToken decodedPit) { var playerIdentifier = decodedPit.PlayerIdentifier; if (!AuthHeaders.ValidatePlayerId(playerIdentifier)) { throw new RpcException(new Status(StatusCode.PermissionDenied, "The Player Identity Token doesn't contain a valid player_identifier")); } return(playerIdentifier); }