1+ import os
12import jwt
2- from fastapi import APIRouter , Depends , Request
3+
34import posthog
5+ from fastapi import APIRouter , Depends , Request
6+ from dotenv import load_dotenv
47
58from dependencies import SessionData , require_auth
69
10+ load_dotenv ()
11+
712user_router = APIRouter ()
813
914@user_router .get ("/me" )
@@ -19,21 +24,7 @@ async def get_user_info(auth: SessionData = Depends(require_auth), request: Requ
1924 full_url = str (request .base_url ).rstrip ("/" ) + str (request .url .path )
2025 full_url = full_url .replace ("http://" , "https://" )
2126
22- # Identify user in PostHog (mirrors frontend identify)
23- posthog .identify (
24- distinct_id = decoded ["sub" ],
25- properties = {
26- "email" : decoded .get ("email" , "" ),
27- "username" : decoded .get ("preferred_username" , "" ),
28- "name" : decoded .get ("name" , "" ),
29- "given_name" : decoded .get ("given_name" , "" ),
30- "family_name" : decoded .get ("family_name" , "" ),
31- "email_verified" : decoded .get ("email_verified" , False ),
32- "$current_url" : full_url
33- }
34- )
35-
36- return {
27+ user_data : dict = {
3728 "id" : decoded ["sub" ], # Unique user ID
3829 "email" : decoded .get ("email" , "" ),
3930 "username" : decoded .get ("preferred_username" , "" ),
@@ -42,3 +33,9 @@ async def get_user_info(auth: SessionData = Depends(require_auth), request: Requ
4233 "family_name" : decoded .get ("family_name" , "" ),
4334 "email_verified" : decoded .get ("email_verified" , False )
4435 }
36+
37+ if os .getenv ("VITE_PUBLIC_POSTHOG_KEY" ):
38+ telemetry = user_data | {"$current_url" : full_url }
39+ posthog .identify (distinct_id = decoded ["sub" ], properties = telemetry )
40+
41+ return user_data
0 commit comments