thread-master/apps/backend/generate/api/auth.api

196 lines
5.1 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

syntax = "v1"
type (
AuthLoginReq {
Email string `json:"email,optional"`
LoginId string `json:"login_id,optional"`
Password string `json:"password"`
Platform string `json:"platform,optional"` // platform|google|line (default platform)
}
AuthRegisterReq {
Email string `json:"email"`
Password string `json:"password"`
DisplayName string `json:"display_name,optional"`
Phone string `json:"phone,optional"`
}
AuthRefreshReq {
RefreshToken string `json:"refresh_token"`
}
AuthLogoutReq {
RefreshToken string `json:"refresh_token,optional"`
}
TokenPair {
AccessToken string `json:"access_token"`
RefreshToken string `json:"refresh_token"`
TokenType string `json:"token_type"`
ExpiresIn int64 `json:"expires_in"`
}
AuthSessionData {
Tokens TokenPair `json:"tokens"`
Member MemberPublic `json:"member"`
}
AuthTokensOnly {
Tokens TokenPair `json:"tokens"`
}
AuthProfilePatchReq {
DisplayName string `json:"display_name,optional"`
Nickname string `json:"nickname,optional"`
FullName string `json:"full_name,optional"`
Email string `json:"email,optional"`
Phone string `json:"phone,optional"`
Bio string `json:"bio,optional"`
Timezone string `json:"timezone,optional"`
NotifyEmail *bool `json:"notify_email,optional"`
// *string省略=不改;""=清除頭像http(s)=設定(禁止 data URL
AvatarUrl *string `json:"avatar_url,optional"`
GenderCode *int `json:"gender_code,optional"`
Birthdate *int64 `json:"birthdate,optional"`
National string `json:"national,optional"`
Address string `json:"address,optional"`
PostCode string `json:"post_code,optional"`
PreferredLanguage string `json:"preferred_language,optional"`
Currency string `json:"currency,optional"`
CurrentPassword string `json:"current_password,optional"`
NewPassword string `json:"new_password,optional"`
}
AuthRequestResetReq {
Email string `json:"email"`
// FE locale: zh-TW | en | en-US未登入時用有會員則優先 preferred_language
Language string `json:"language,optional"`
}
AuthRequestResetData {
Ok bool `json:"ok"`
Message string `json:"message"`
MockCode string `json:"mock_code,optional"`
MockResetPath string `json:"mock_reset_path,optional"`
}
AuthResetPasswordReq {
Email string `json:"email"`
Token string `json:"token,optional"`
Code string `json:"code,optional"`
NewPassword string `json:"new_password"`
}
AuthSendCodeData {
Ok bool `json:"ok"`
Message string `json:"message"`
MockCode string `json:"mock_code,optional"`
}
AuthVerifyEmailReq {
Code string `json:"code"`
}
AuthOAuthProviderPath {
Provider string `path:"provider"`
}
AuthOAuthCallbackReq {
Provider string `path:"provider"`
Code string `json:"code,optional"`
IdToken string `json:"id_token,optional"`
AccessToken string `json:"access_token,optional"`
RedirectUri string `json:"redirect_uri,optional"`
}
AuthOAuthStartData {
AuthorizeUrl string `json:"authorize_url"`
Provider string `json:"provider"`
State string `json:"state"`
}
AuthBindReq {
LoginId string `json:"login_id"`
Platform string `json:"platform"`
AccountType string `json:"account_type,optional"`
Password string `json:"password,optional"`
}
AuthUnbindReq {
LoginId string `json:"login_id"`
Platform string `json:"platform"`
}
AuthIdentitiesData {
List []IdentityPublic `json:"list"`
}
AuthLogoutAllData {
Ok bool `json:"ok"`
}
)
@server (
group: auth
prefix: /api/v1/auth
)
service gateway {
@handler Login
post /login (AuthLoginReq) returns (AuthSessionData)
@handler Logout
post /logout (AuthLogoutReq) returns (OkData)
@handler Refresh
post /refresh (AuthRefreshReq) returns (AuthTokensOnly)
@handler Register
post /register (AuthRegisterReq) returns (AuthSessionData)
@handler RequestPasswordReset
post /password/request-reset (AuthRequestResetReq) returns (AuthRequestResetData)
@handler ResetPassword
post /password/reset (AuthResetPasswordReq) returns (OkData)
@handler OAuthStart
post /oauth/:provider/start (AuthOAuthProviderPath) returns (AuthOAuthStartData)
@handler OAuthCallback
post /oauth/:provider/callback (AuthOAuthCallbackReq) returns (AuthSessionData)
}
@server (
group: auth
prefix: /api/v1/auth
middleware: AuthJWT
)
service gateway {
@handler Me
get /me returns (MemberPublic)
@handler UpdateProfile
patch /profile (AuthProfilePatchReq) returns (MemberPublic)
@handler UpdateProfilePut
put /profile (AuthProfilePatchReq) returns (MemberPublic)
@handler SendEmailCode
post /email/send-code returns (AuthSendCodeData)
@handler VerifyEmail
post /email/verify (AuthVerifyEmailReq) returns (MemberPublic)
@handler ListIdentities
get /identities returns (AuthIdentitiesData)
@handler BindAccount
post /bind (AuthBindReq) returns (IdentityPublic)
@handler UnbindAccount
post /unbind (AuthUnbindReq) returns (OkData)
@handler LogoutAll
post /logout-all returns (AuthLogoutAllData)
}