{ "swagger": "2.0", "info": { "title": "", "version": "" }, "host": "dev-api.30cm.net", "schemes": [ "http", "https" ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "paths": { "/api/v1/member": { "post": { "summary": "創建新會員", "description": "創建一個全新的帳號,創完成之後會自動登入", "operationId": "AccountCreate", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/LoginTokenResp" } } }, "parameters": [ { "name": "body", "description": " -------------------------------------------", "in": "body", "required": true, "schema": { "$ref": "#/definitions/CreateAccountRequest" } } ], "tags": [ "member" ], "consumes": [ "multipart/form-data" ] } }, "/api/v1/member/check-verify-code": { "post": { "summary": "確認邀請 - 綁定會員", "description": "確認驗證碼是否有效", "operationId": "CheckVerifyCode", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/RespOK" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/CheckoutVerifyReq" } } ], "tags": [ "member" ] } }, "/api/v1/member/forget-password-code": { "post": { "summary": "發送忘記密碼驗證", "description": "發送忘記密碼驗證(三分鐘內只能發一次信)", "operationId": "ForgetPasswordCode", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/RespOK" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/ForgetPasswordCodeReq" } } ], "tags": [ "member" ] } }, "/api/v1/member/info": { "get": { "summary": "取得會員資訊", "operationId": "Info", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/UserInfo" } } }, "parameters": [ { "name": "required", "in": "header", "required": true, "type": "string" } ], "tags": [ "member" ] }, "put": { "summary": "更新會員詳細資訊", "operationId": "ModifyMemberInfo", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/UserInfo" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/BindingUserInfoReq" } } ], "tags": [ "member" ] } }, "/api/v1/member/login": { "post": { "summary": "登入", "description": "會員登入", "operationId": "Login", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/LoginTokenResp" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/LoginReq" } } ], "tags": [ "member" ], "consumes": [ "multipart/form-data" ] } }, "/api/v1/member/logout": { "get": { "summary": "會員登出", "operationId": "Logout", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/RespOK" } } }, "parameters": [ { "name": "required", "in": "header", "required": true, "type": "string" } ], "tags": [ "member" ] } }, "/api/v1/member/modify-passwd": { "put": { "summary": "修改密碼", "description": "修改密碼", "operationId": "ModifyPasswdHandler", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/RespOK" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/ModifyPasswdReq" } } ], "tags": [ "member" ] } }, "/api/v1/member/pre-verify": { "put": { "summary": "預先驗證驗證碼", "description": "忘記密碼的時候看 ui. 流程要預先驗證一次才給送,", "operationId": "PreVerifyUpdatePasswordCode", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/RespOK" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/PreVerifyForgetPasswdReq" } } ], "tags": [ "member" ] } }, "/api/v1/member/refresh_access_token": { "put": { "summary": "更新 Access Token", "description": "用 RefreshToken 換取 AccessToken", "operationId": "RefreshAccessToken", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/LoginTokenResp" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/UpdateTokenReq" } } ], "tags": [ "member" ] } }, "/api/v1/member/update-password": { "put": { "summary": "更新密碼(要發送驗證碼才可以的流程)", "description": "更新密碼(要發送驗證碼才可以的流程)", "operationId": "UpdatePassword", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/RespOK" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/UpdatePasswordReq" } } ], "tags": [ "member" ] } }, "/api/v1/member/verify": { "post": { "summary": "發送邀請 - 綁定會員", "description": "可以依照類別(手機驗證,email驗證),同一個類型十分鐘內只能發送一次", "operationId": "SendVerifyCode", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/RespOK" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/VerificationCodeRequest" } } ], "tags": [ "member" ] } } }, "definitions": { "BaseResponse": { "type": "object", "properties": { "status": { "$ref": "#/definitions/Status", "description": " 狀態" }, "data": { "type": "object", "description": " 資料" } }, "title": "BaseResponse", "required": [ "status", "data" ] }, "BindingUserInfoReq": { "type": "object", "properties": { "preferred_language": { "type": "string", "description": " 使用語言" }, "currency": { "type": "string" }, "avatar_url": { "type": "string", "description": " 頭像 URL(可選)" }, "nickname": { "type": "string" }, "full_name": { "type": "string", "description": " 用戶全名" }, "gender_code": { "type": "string", "description": " 性別代碼" }, "birthdate": { "type": "string", "description": " 生日 (格式: unix)" }, "address": { "type": "string", "description": " 地址" } }, "title": "BindingUserInfoReq", "required": [ "gender_code" ] }, "CheckoutVerifyReq": { "type": "object", "properties": { "account": { "type": "string", "description": " 帳號名稱" }, "code_type": { "type": "string", "description": " 驗證碼類型 1 信箱 2 手機" }, "verify_code": { "type": "string", "description": " 驗證碼,長度為6" }, "uid": { "type": "string" } }, "title": "CheckoutVerifyReq", "required": [ "account", "code_type", "verify_code", "uid" ] }, "CreateAccountRequest": { "type": "object", "properties": { "account": { "type": "string", "description": " 帳號名稱(line code 輸入在這邊)" }, "token": { "type": "string", "description": " 密碼或平台token,密碼請 sha256 轉碼,如果三方token 請隨便給一個 sha256 字串" }, "token_check": { "type": "string", "description": " 密碼或平台token,token 請保持原樣,填在這邊,不用管 token" }, "platform": { "type": "string", "description": " 平台名稱 (platform) 平台、google、line" }, "account_type": { "type": "string", "description": " 帳號類型 phone(手機)、email(信箱)、platform(自定義帳號) -\u003e (如果為第三方都寫 platform)" } }, "title": "CreateAccountRequest", "required": [ "account", "token", "token_check", "platform", "account_type" ] }, "ForgetPasswordCodeReq": { "type": "object", "properties": { "account": { "type": "string", "description": " 帳號名稱" }, "account_type": { "type": "string", "description": " 帳號類型 (phone) 手機 (email) 信箱" } }, "title": "ForgetPasswordCodeReq", "required": [ "account", "account_type" ] }, "LoginReq": { "type": "object", "properties": { "account": { "type": "string", "description": " 帳號名稱" }, "token": { "type": "string", "description": " 密碼或平台token,密碼請 sha256 轉碼" }, "platform": { "type": "string", "description": " 平台名稱 platform, google" }, "account_type": { "type": "string", "description": " 帳號類型 1 手機 2 信箱 3 自定義帳號" } }, "title": "LoginReq", "required": [ "account", "token", "platform", "account_type" ] }, "LoginTokenResp": { "type": "object", "properties": { "uid": { "type": "string", "description": " Account" }, "access_token": { "type": "string", "description": " 訪問令牌 預設 5 分鐘過期" }, "refresh_token": { "type": "string", "description": " 刷新令牌 (預設一天過期,只能用一次),當呼叫更新token api 時,會自動把舊的失效,變成新的 refresh_token ,前端要記得過其實協助刷新,刷新不過表示全失效了(重新登入)" }, "token_type": { "type": "string", "description": " Bearer" } }, "title": "LoginTokenResp", "required": [ "uid", "access_token", "refresh_token", "token_type" ] }, "MemberLoginHeader": { "type": "object", "title": "MemberLoginHeader" }, "ModifyPasswdReq": { "type": "object", "properties": { "token": { "type": "string", "description": " 密碼或平台token,密碼請 sha256 轉碼" }, "token_check": { "type": "string", "description": " 密碼或平台token,密碼請 sha256 轉碼" } }, "title": "ModifyPasswdReq", "required": [ "token", "token_check" ] }, "PreVerifyForgetPasswdReq": { "type": "object", "properties": { "identifier": { "type": "string", "description": " 聯繫方式,可以是 email 或 phone" }, "verify_code": { "type": "string", "description": " 驗證碼,長度為6" } }, "title": "PreVerifyForgetPasswdReq", "required": [ "identifier", "verify_code" ] }, "RespOK": { "type": "object", "title": "RespOK" }, "Status": { "type": "object", "properties": { "code": { "type": "integer", "format": "int64", "description": " 狀態碼" }, "message": { "type": "string", "description": " 訊息" }, "data": { "type": "object", "description": " 可選的數據,當有返回時才出現" }, "error": { "type": "object", "description": " 可選的錯誤信息" } }, "title": "Status", "required": [ "code", "message" ] }, "UpdatePasswordReq": { "type": "object", "properties": { "account": { "type": "string", "description": " 帳號名稱" }, "verify_code": { "type": "string", "description": " 驗證碼,長度為6" }, "token": { "type": "string", "description": " 密碼或平台token,密碼請 sha256 轉碼" }, "token_check": { "type": "string", "description": " 密碼或平台token,密碼請 sha256 轉碼" } }, "title": "UpdatePasswordReq", "required": [ "account", "verify_code", "token", "token_check" ] }, "UpdateTokenReq": { "type": "object", "properties": { "uid": { "type": "string", "description": " 誰要更新" }, "token": { "type": "string", "description": " access token -\u003e 已過期要被更新的" }, "refresh_token": { "type": "string", "description": " refresh token -\u003e 重點,要驗證他的" } }, "title": "UpdateTokenReq", "required": [ "uid", "token", "refresh_token" ] }, "UserInfo": { "type": "object", "properties": { "platform": { "type": "string", "description": " 用戶平台 platform, google, line" }, "uid": { "type": "string", "description": " 用戶 UID" }, "avatar_url": { "type": "string", "description": " 頭像 URL(可選)" }, "full_name": { "type": "string", "description": " 用戶全名" }, "nickname": { "type": "string", "description": " 暱稱(可選)" }, "gender_code": { "type": "string", "description": " 性別代碼 mail, femail ,sec" }, "birthdate": { "type": "string", "description": " 生日 (格式: 19930417)" }, "phone_number": { "type": "string", "description": " 電話" }, "address": { "type": "string", "description": " 地址" }, "email": { "type": "string", "description": " 驗證後的信箱" }, "alarm_category": { "type": "string", "description": " 告警狀態" }, "user_status": { "type": "string", "description": " 用戶狀態" }, "preferred_language": { "type": "string", "description": " 使用語言" }, "currency": { "type": "string", "description": " 使用幣種" }, "update_at": { "type": "string" }, "create_at": { "type": "string" } }, "title": "UserInfo", "required": [ "platform", "uid", "avatar_url", "full_name", "nickname", "gender_code", "birthdate", "phone_number", "address", "email", "alarm_category", "user_status", "preferred_language", "currency", "update_at", "create_at" ] }, "VerificationCodeRequest": { "type": "object", "properties": { "identifier": { "type": "string", "description": " 聯繫方式,可以是 email 或 phone" }, "code_type": { "type": "string", "description": " 驗證碼類型" } }, "title": "VerificationCodeRequest", "required": [ "identifier", "code_type" ] }, "VerifyHeader": { "type": "object", "title": "VerifyHeader" } }, "securityDefinitions": { "apiKey": { "type": "apiKey", "description": "Enter JWT Bearer token **_only_**", "name": "Authorization", "in": "header" } } }