server/apis/auth/auth.api
Chang lue Tsen 8addcc584b init: 1.0.0
2025-04-25 12:08:29 +09:00

167 lines
5.0 KiB
Plaintext

syntax = "v1"
info (
title: "User auth API"
desc: "API for ppanel"
author: "Tension"
email: "tension@ppanel.com"
version: "0.0.1"
)
type (
// User login request
UserLoginRequest {
Email string `json:"email" validate:"required"`
Password string `json:"password" validate:"required"`
IP string `header:"X-Original-Forwarded-For"`
UserAgent string `header:"User-Agent"`
CfToken string `json:"cf_token,optional"`
}
// Check user is exist request
CheckUserRequest {
Email string `form:"email" validate:"required"`
}
// User login response
CheckUserResponse {
exist bool `json:"exist"`
}
// User login response
UserRegisterRequest {
Email string `json:"email" validate:"required"`
Password string `json:"password" validate:"required"`
Invite string `json:"invite,optional"`
Code string `json:"code,optional"`
IP string `header:"X-Original-Forwarded-For"`
UserAgent string `header:"User-Agent"`
CfToken string `json:"cf_token,optional"`
}
// User login response
ResetPasswordRequest {
Email string `json:"email" validate:"required"`
Password string `json:"password" validate:"required"`
Code string `json:"code,optional"`
IP string `header:"X-Original-Forwarded-For"`
UserAgent string `header:"User-Agent"`
CfToken string `json:"cf_token,optional"`
}
LoginResponse {
Token string `json:"token"`
}
OAthLoginRequest {
Method string `json:"method" validate:"required"` // google, facebook, apple, telegram, github etc.
Redirect string `json:"redirect"`
}
OAuthLoginResponse {
Redirect string `json:"redirect"`
}
OAuthLoginGetTokenRequest {
Method string `json:"method" validate:"required"` // google, facebook, apple, telegram, github etc.
Callback interface{} `json:"callback" validate:"required"`
}
// login request
TelephoneLoginRequest {
Telephone string `json:"telephone" validate:"required"`
TelephoneCode string `json:"telephone_code"`
TelephoneAreaCode string `json:"telephone_area_code" validate:"required"`
Password string `json:"password"`
IP string `header:"X-Original-Forwarded-For"`
CfToken string `json:"cf_token,optional"`
}
// Check user is exist request
TelephoneCheckUserRequest {
Telephone string `form:"telephone" validate:"required"`
TelephoneAreaCode string `json:"telephone_area_code" validate:"required"`
}
// User login response
TelephoneCheckUserResponse {
exist bool `json:"exist"`
}
// User login response
TelephoneRegisterRequest {
Telephone string `json:"telephone" validate:"required"`
TelephoneAreaCode string `json:"telephone_area_code" validate:"required"`
Password string `json:"password" validate:"required"`
Invite string `json:"invite,optional"`
Code string `json:"code,optional"`
IP string `header:"X-Original-Forwarded-For"`
CfToken string `json:"cf_token,optional"`
}
// User login response
TelephoneResetPasswordRequest {
Telephone string `json:"telephone" validate:"required"`
TelephoneAreaCode string `json:"telephone_area_code" validate:"required"`
Password string `json:"password" validate:"required"`
Code string `json:"code,optional"`
IP string `header:"X-Original-Forwarded-For"`
CfToken string `json:"cf_token,optional"`
}
AppleLoginCallbackRequest {
Code string `form:"code"`
IDToken string `form:"id_token"`
State string `form:"state"`
}
GoogleLoginCallbackRequest {
Code string `form:"code"`
State string `form:"state"`
}
)
@server (
prefix: v1/auth
group: auth
)
service ppanel {
@doc "User login"
@handler UserLogin
post /login (UserLoginRequest) returns (LoginResponse)
@doc "Check user is exist"
@handler CheckUser
get /check (CheckUserRequest) returns (CheckUserResponse)
@doc "User register"
@handler UserRegister
post /register (UserRegisterRequest) returns (LoginResponse)
@doc "Reset password"
@handler ResetPassword
post /reset (ResetPasswordRequest) returns (LoginResponse)
@doc "User Telephone login"
@handler TelephoneLogin
post /login/telephone (TelephoneLoginRequest) returns (LoginResponse)
@doc "Check user telephone is exist"
@handler CheckUserTelephone
get /check/telephone (TelephoneCheckUserRequest) returns (TelephoneCheckUserResponse)
@doc "User Telephone register"
@handler TelephoneUserRegister
post /register/telephone (TelephoneRegisterRequest) returns (LoginResponse)
@doc "Reset password"
@handler TelephoneResetPassword
post /reset/telephone (TelephoneResetPasswordRequest) returns (LoginResponse)
}
@server (
prefix: v1/auth/oauth
group: auth/oauth
)
service ppanel {
@doc "OAuth login"
@handler OAuthLogin
post /login (OAthLoginRequest) returns (OAuthLoginResponse)
@doc "OAuth login get token"
@handler OAuthLoginGetToken
post /login/token (OAuthLoginGetTokenRequest) returns (LoginResponse)
@doc "Apple Login Callback"
@handler AppleLoginCallback
post /callback/apple (AppleLoginCallbackRequest)
}