Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

[Web] getExistingAnonymousId does not decode JSON-stringified ajs_anonymous_id from localStorage

Ouverte Adaptée aux débutants
#196 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
82/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Calme
Stack technique
dart, flutter
Domaine
web-dev

Piste de recherche

Commencez dans packages/core/lib/utils/store/web.dart, au niveau de getExistingAnonymousId(), où la valeur de localStorage est lue. Vérifiez comment la valeur brute ajs_anonymous_id est traitée et validez la modification avec des valeurs sérialisées en JSON comme avec des valeurs de type string simples. La tâche est terminée lorsque Flutter web renvoie l’UUID propre, sans guillemets autour, tout en préservant la compatibilité avec les valeurs existantes.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Bug

When analytics.js (the Segment JavaScript SDK) writes ajs_anonymous_id to localStorage, it uses JSON.stringify(), which wraps the UUID in surrounding double-quote characters. The Flutter SDK's getExistingAnonymousId() in packages/core/lib/utils/store/web.dart reads this value via localStorage.getItem() but does not decode it, so the quotes become part of the anonymous ID string.

This means any Flutter web app running on a domain where analytics.js has previously set ajs_anonymous_id will pick up a corrupted anonymous ID (e.g. "d039d945-..." instead of d039d945-...), causing identity mismatches between the JS and Flutter SDKs.

Expected behavior

anonymousId should be a clean UUID:

d039d945-572c-4148-b072-2b54ef52102a

Actual behavior

anonymousId includes surrounding quotes, which get double-escaped when serialized to analytics-flutter-userInfo.json:

{"anonymousId":"\"d039d945-572c-4148-b072-2b54ef52102a\""}

Proposed fix

json.decode the raw localStorage value in getExistingAnonymousId() before returning it, with a try/catch fallback for values that are already plain strings.

Langage dominant
Dart
Étoiles
33
Forks
60
Merge moyen
1 j 13 h
PR mergées (30 j)
5

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de segmentio/analytics_flutter

Toutes les issues de segmentio/analytics_flutter

Issues similaires

Plus d'issues Dart

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.