package userapi import userv1 "hyapp.local/api/proto/user/v1" // authTokenData 是完整资料补齐后返回给客户端替换 access token 的扁平格式。 // 字段保持和登录接口一致,避免客户端在 onboarding 后解析两套 token 结构。 type authTokenData struct { AppCode string `json:"app_code"` UserID string `json:"user_id,omitempty"` DisplayUserID string `json:"display_user_id,omitempty"` DefaultDisplayUserID string `json:"default_display_user_id,omitempty"` DisplayUserIDKind string `json:"display_user_id_kind,omitempty"` DisplayUserIDExpiresAtMs int64 `json:"display_user_id_expires_at_ms"` SessionID string `json:"session_id"` AccessToken string `json:"access_token"` RefreshToken string `json:"refresh_token,omitempty"` ExpiresInSec int64 `json:"expires_in_sec"` TokenType string `json:"token_type"` IsNewUser *bool `json:"is_new_user,omitempty"` ProfileCompleted bool `json:"profile_completed"` OnboardingStatus string `json:"onboarding_status,omitempty"` } func authData(token *userv1.AuthToken, isNewUser *bool) authTokenData { if token == nil { return authTokenData{IsNewUser: isNewUser} } return authTokenData{ UserID: userIDString(token.GetUserId()), AppCode: token.GetAppCode(), DisplayUserID: token.GetDisplayUserId(), DefaultDisplayUserID: token.GetDefaultDisplayUserId(), DisplayUserIDKind: token.GetDisplayUserIdKind(), DisplayUserIDExpiresAtMs: token.GetDisplayUserIdExpiresAtMs(), SessionID: token.GetSessionId(), AccessToken: token.GetAccessToken(), RefreshToken: token.GetRefreshToken(), ExpiresInSec: token.GetExpiresInSec(), TokenType: token.GetTokenType(), IsNewUser: isNewUser, ProfileCompleted: token.GetProfileCompleted(), OnboardingStatus: token.GetOnboardingStatus(), } }