validateToken method

Result<void> validateToken(
  1. String authToken
)

Validates a JWT auth token. Returns Result<void> - success if valid, error if invalid.

Implementation

Result<void> validateToken(String authToken) {
  if (authToken.isEmpty) {
    return Result.error('[DataLoss] Invalid auth token');
  }

  if (!isProd && _constantTimeCompare(authToken, devAuthToken)) {
    return Result.value(null);
  }
  try {
    if (secretKey.isEmpty) {
      return Result.error('[Internal] Server secret key is not set');
    }

    final claim = verifyJwtHS256Signature(authToken, secretKey);

    claim.validate();

    return Result.value(null);
  } catch (e) {
    return Result.error('[DataLoss] Invalid auth token');
  }
}