46 lines
2.0 KiB
Go
46 lines
2.0 KiB
Go
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(),
|
|
}
|
|
}
|