diff --git a/src/base/initialize.md b/src/base/initialize.md index bcba8a1..c9aaa97 100644 --- a/src/base/initialize.md +++ b/src/base/initialize.md @@ -101,7 +101,7 @@ POST /initialize.Check.Updates } ``` -#### 请求参数 +##### 请求参数 |名称|位置|类型|必选|中文名|说明| |---|---|---|---|---|---| @@ -129,13 +129,13 @@ POST /initialize.Check.Updates } ``` -#### 返回结果 +##### 返回结果 |状态码|状态码含义|说明|数据模型| |---|---|---|---| |200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| -#### 返回数据结构 +##### 返回数据结构 状态码 **200** @@ -160,7 +160,7 @@ POST /initialize.Data.Configure } ``` -#### 请求参数 +##### 请求参数 |名称|位置|类型|必选|中文名|说明| |---|---|---|---|---|---| @@ -180,13 +180,13 @@ POST /initialize.Data.Configure {} ``` -#### 返回结果 +##### 返回结果 |状态码|状态码含义|说明|数据模型| |---|---|---|---| |200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| -#### 返回数据结构 +##### 返回数据结构 状态码 **200** @@ -205,7 +205,7 @@ POST /initialize.Data.Areas {} ``` -#### 请求参数 +##### 请求参数 |名称|位置|类型|必选|中文名|说明| |---|---|---|---|---|---| @@ -237,13 +237,13 @@ POST /initialize.Data.Areas } ``` -#### 返回结果 +##### 返回结果 |状态码|状态码含义|说明|数据模型| |---|---|---|---| |200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| -#### 返回数据结构 +##### 返回数据结构 状态码 **200** @@ -271,7 +271,7 @@ POST /initialize.Data.Tags {} ``` -#### 请求参数 +##### 请求参数 |名称|位置|类型|必选|中文名|说明| |---|---|---|---|---|---| @@ -293,13 +293,13 @@ POST /initialize.Data.Tags } ``` -#### 返回结果 +##### 返回结果 |状态码|状态码含义|说明|数据模型| |---|---|---|---| |200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| -#### 返回数据结构 +##### 返回数据结构 状态码 **200** @@ -319,7 +319,7 @@ POST /initialize.Check.Hello {} ``` -#### 请求参数 +##### 请求参数 |名称|位置|类型|必选|中文名|说明| |---|---|---|---|---|---| @@ -345,13 +345,13 @@ POST /initialize.Check.Hello } ``` -#### 返回结果 +##### 返回结果 |状态码|状态码含义|说明|数据模型| |---|---|---|---| |200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| -#### 返回数据结构 +##### 返回数据结构 状态码 **200** diff --git a/src/passport/index.md b/src/passport/index.md index 7f10099..73d0aa5 100644 --- a/src/passport/index.md +++ b/src/passport/index.md @@ -1,97 +1,1101 @@ -# Gateway API网关 +# Passport 通行证微服务 + ## 介绍 -Gateway 网关服务是一个用 Go 语言开发的高性能 API 网关,旨在帮助开发者轻松管理和路由微服务请求。通过使用此网关,您可以集中处理身份验证、负载均衡、API 版本控制以及请求和响应的转换等功能。 +Passport 微服务负责在初始化数据、检测新版本或新的配置、获取应用的相关配置信息、系统区域数据、系统标签数据等其它应用相关数据。 ## 源码仓库 ``` -https://git.apinb.com/bsm-infra/gateway +https://git.apinb.com/bsm-service-app/passport ``` -## 功能特性 - -- **路由管理**:自动发现注册的GRPC微服务,实现动态管理路由。 -- **支持协议**:同时支持Grpc/Restful协议,自动映射转发。 -- **负载均衡**:支持多种负载均衡策略(轮询、随机等)。 -- **身份验证**:网关实现身份验证,采用不可视化的JWT机制。 -- **监控和日志**:实时监控请求日志,方便问题排查和性能优化。 - ## 安装 -要安装 Gateway 网关服务,请确保您已经安装了 bsm cli。: +要安装 passport 初始化微服务,请确保您已经安装了 bsm cli, 安装命令如下: ```bash -bsm install gateway +bsm install passport ``` -## 配置文件说明 +## 配置文件 -在 `etc/` 目录中,根据dev,test,prod环境不同读取不同的配置文件,您可以配置网关的基本设置,例如: +在 `etc/` 目录中,根据dev,test,prod环境不同读取不同的配置文件,通过配置微服务决定是否启用相关服务,例如: -gateway_prod.yaml +passport_prod.yaml ```yaml -Name: bsm-gateway +Name: {ServiceKey} +ListenOn: 0.0.0.0:12218 +JwtSecret: asdfasdfasdfasdf -Open: - - rpc - - http - -TLS: - Ca: /usr/local/bsm/cert/ca.crt - Cert: /usr/local/bsm/cert/server.crt - Key: /usr/local/bsm/cert/server.key +Dsn: postgres://postgres:******@127.0.0.1:5432/{Workspace}_prod?sslmode=disable&TimeZone=Asia/Shanghai -Rpc: - Addr: 0.0.0.0:10020 - -Http: - Addr: 0.0.0.0:10021 - -Https: - Addr: 0.0.0.0:10022 +# cache DB的选择请在后面直接带参数,不带会自动HASH计算选择DB库。 +Cache: redis://null:******@127.0.0.1:6379/ Etcd: - Endpoints: + Hosts: - 127.0.0.1:2379 + Key: service.{Workspace}.{ServiceKey}.rpc + +# 服务调用, 注释将不启用此功能 +Notify: + Etcd: + Hosts: + - 127.0.0.1:2379 + Key: service.{Workspace}.notify.rpc + +# 匿名访问清单,自动注入网关层 +Anonymous: + Key: anonymous.{Workspace} + Urls: + - passport.Check.Hello + - passport.Check.Updates + - passport.Data.Configure + - passport.Data.Areas + - passport.Data.Tags + - passport.Register.Pwd + - passport.Register.Code + - passport.Register.WeChat + - passport.Register.AppleID + - passport.Register.Pwd + - passport.Login.Pwd + - passport.Login.Code + - passport.Login.WeChatByCode + - passport.Login.WeChatByPhone + - passport.Login.WeChatGetUserinfo + - passport.Login.AppleID + - passport.Login.CodeAndRegister + + + +# 日志记录, 注释将不启用此功能 +Log: + ServiceName: {ServiceKey} + Mode: file + Path: logs/{ServiceKey} + Stat: false + +# 性能监控, 注释将不启用此功能 +Prometheus: + Host: 127.0.0.1 + Port: 22218 + Path: /metrics + +# 链路追踪, 注释将不启用此功能 +Telemetry: + Name: {Workspace}.{ServiceKey}.{RuntimeMode} + Endpoint: http://192.168.0.85:14268/api/traces + Sampler: 1.0 + Batcher: jaeger + +# MQ Pulsar +#Pulsar: +# Endpoints: 127.0.0.1 +# Token: 9091 +# Namespaces: {Workspace} + ``` -### 配置项说明 +## 管理微服务 -- **Open**:要开通的服务。 -- **TLS**:数字证书,用于SSL和GRPC客户端连接。 -- **Rpc/Http/Https**:Rpc/Http/Https监听端口。 -- **Etcd**:ETCD服务配置。 - -## 启动网关 - -使用以下命令启动网关服务: +使用以下命令管理微服务: ```bash -bsm start gateway +bsm start/restart/update passport ``` -查看启动日志 `./logs/gateway-v0.2.4.log` -``` -2024/10/04 11:27:15 [Blocks Service] gateway Starting... -2024/10/04 11:27:15 [Blocks Service] gateway Runtime Mode: test -2024/10/04 11:27:15 [Blocks Service] Service Route Prefix: service. -2024/10/04 11:27:15 [Blocks Service] Service Anonymous Prefix: anonymous. -2024/10/04 11:27:15 [Blocks Service] gateway Service Build: Version v0.2.3, Go Version linux/amd64 golang:1.23.1-bookworm By 2024-10-03 20:56:05 -2024/10/04 11:27:15 [Blocks Service] Connectd ETCD:[127.0.0.1:2379] -2024/10/04 11:27:15 [Blocks Service] gateway HTTP Proxy Addr [0.0.0.0:10021] Runing Success! -2024/10/04 11:27:15 [Blocks Service] gateway RPC Proxy Addr [0.0.0.0:10020] Runing Success! -``` -## 测试网关 -一旦服务启动,您可以使用 `curl` 或 Postman 等工具发送请求。例如: +## API 接口说明 -```bash -curl http://localhost:10021/ping -``` -正常时,返回: -``` -PONG -``` -## 查看日志 +###forget 找回密码 -网关服务会将日志存储至: `/usr/local/bsm/logs/` 目录下。 +### 验证手机号和验证码 + +POST /passport.Forget.Verify + +> Body 请求参数 + +```json +{ + "phone": "string", + "code": "string" +} +``` + +#### 请求参数 + +|名称|位置|类型|必选|中文名|说明| +|---|---|---|---|---|---| +|Request-Id|header|string| 是 ||请求ID| +|Content-Type|header|string| 是 ||传输格式| +|Workspace|header|string| 是 ||项目名称| +|Authorization|header|string| 否 ||用户通行证Token| +|body|body|object| 否 ||none| +|» phone|body|string| 是 | 手机号|none| +|» code|body|string| 是 | 验证码|none| + +> 返回示例 + +> 200 Response + +```json +{ + "status": 0, + "identity": "string", + "message": "string", + "timeseq": 0 +} +``` + +#### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +#### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|integer|true|none|状态码|none| +|» identity|string|true|none|标识码|none| +|» message|string|true|none|状态说明|none| +|» timeseq|integer|true|none|响应时间序列|none| + +### 重罢密码 + +POST /passport.Forget.Reset + +> Body 请求参数 + +```json +{ + "identity": "string", + "password": "string" +} +``` + +#### 请求参数 + +|名称|位置|类型|必选|中文名|说明| +|---|---|---|---|---|---| +|Request-Id|header|string| 是 ||请求ID| +|Content-Type|header|string| 是 ||传输格式| +|Workspace|header|string| 是 ||项目名称| +|Authorization|header|string| 否 ||用户通行证Token| +|body|body|object| 否 ||none| +|» identity|body|string| 是 | 唯一码|none| +|» password|body|string| 是 | 密码|none| + +> 返回示例 + +> 200 Response + +```json +{ + "identity": "string", + "data_bind": "string", + "token": "string", + "extend": {} +} +``` + +#### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +#### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» identity|string|true|none|用户唯一码|none| +|» data_bind|string|true|none|数据绑定的相关说明,PASS通过,NOPHONE没有绑定手机号,NOPWD没有设置密码,NOBIND没有手机号同时没有密码|none| +|» token|string|true|none|用户凭证|none| +|» extend|object|true|none|扩展字段|none| + +###info (会员通行证)模块-数据 + +### 绑定资料 + +POST /passport.Info.Bind + +> Body 请求参数 + +```json +{ + "action": "string", + "phone": "string", + "code": "string", + "password": "string", + "nickname": "string" +} +``` + +#### 请求参数 + +|名称|位置|类型|必选|中文名|说明| +|---|---|---|---|---|---| +|Request-Id|header|string| 是 ||请求ID| +|Content-Type|header|string| 是 ||传输格式| +|Workspace|header|string| 是 ||项目名称| +|Authorization|header|string| 否 ||用户通行证Token| +|body|body|object| 否 ||none| +|» action|body|string| 是 | 操作动作|none| +|» phone|body|string| 是 | 手机号码 必填|none| +|» code|body|string| 是 | 验证码|none| +|» password|body|string| 是 | 密码 必填|none| +|» nickname|body|string| 是 | 昵称|none| + +> 返回示例 + +> 200 Response + +```json +{ + "status": 0, + "identity": "string", + "message": "string", + "timeseq": 0 +} +``` + +#### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +#### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|integer|true|none|状态码|none| +|» identity|string|true|none|标识码|none| +|» message|string|true|none|状态说明|none| +|» timeseq|integer|true|none|响应时间序列|none| + +### 获取会员的所有信息数据 + +POST /passport.Info.GetData + +> Body 请求参数 + +```json +{} +``` + +#### 请求参数 + +|名称|位置|类型|必选|中文名|说明| +|---|---|---|---|---|---| +|Request-Id|header|string| 是 ||请求ID| +|Content-Type|header|string| 是 ||传输格式| +|Workspace|header|string| 是 ||项目名称| +|Authorization|header|string| 否 ||用户通行证Token| +|body|body|object| 否 ||none| + +> 返回示例 + +> 200 Response + +```json +{ + "account": "string", + "phone": "string", + "nickname": "string", + "avatar": "string", + "birthday": "string", + "sex": 0, + "province": 0, + "city": 0, + "area": 0, + "sign": "string", + "approve": 0 +} +``` + +#### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +#### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» account|string|true|none|帐号|none| +|» phone|string|true|none|手机号|none| +|» nickname|string|true|none|昵称|none| +|» avatar|string|true|none|头像|none| +|» birthday|string|true|none|生日|none| +|» sex|integer|true|none|性别,1为男性,2为女性|none| +|» province|integer|true|none|省|none| +|» city|integer|true|none|市|none| +|» area|integer|true|none|区|none| +|» sign|string|true|none|签名|none| +|» approve|integer|true|none|状态:-2,认证未通过,0为未认证,1为审核中,2为认证成功|none| + +### 更新会员的信息数据 + +POST /passport.Info.SetData + +字段值为空或是0,将不更新此数据 + +> Body 请求参数 + +```json +{ + "nickname": "string", + "avatar": "string", + "birthday": "string", + "sex": 0, + "province": 0, + "city ": 0, + "area": 0, + "sign": "string" +} +``` + +#### 请求参数 + +|名称|位置|类型|必选|中文名|说明| +|---|---|---|---|---|---| +|Request-Id|header|string| 是 ||请求ID| +|Content-Type|header|string| 是 ||传输格式| +|Workspace|header|string| 是 ||项目名称| +|Authorization|header|string| 否 ||用户通行证Token| +|body|body|object| 否 ||none| +|» nickname|body|string| 是 | 昵称|none| +|» avatar|body|string| 是 | 头像|none| +|» birthday|body|string| 是 | 生日|none| +|» sex|body|integer| 是 | 性别,1为男性,2为女性|none| +|» province|body|integer| 是 | 省|none| +|» city|body|integer| 是 | 市|none| +|» area|body|integer| 是 | 区|none| +|» sign|body|string| 是 | 签名|none| + +> 返回示例 + +> 200 Response + +```json +{ + "status": 0, + "identity": "string", + "message": "string", + "timeseq": 0 +} +``` + +#### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +#### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|integer|true|none|状态码|none| +|» identity|string|true|none|标识码|none| +|» message|string|true|none|状态说明|none| +|» timeseq|integer|true|none|响应时间序列|none| + +### 更新会员的密码 + +POST /passport.Info.SetPassword + +> Body 请求参数 + +```json +{ + "SetPasswordRequest": "string", + "new_password": "string" +} +``` + +#### 请求参数 + +|名称|位置|类型|必选|中文名|说明| +|---|---|---|---|---|---| +|Request-Id|header|string| 是 ||请求ID| +|Content-Type|header|string| 是 ||传输格式| +|Workspace|header|string| 是 ||项目名称| +|Authorization|header|string| 否 ||用户通行证Token| +|body|body|object| 否 ||none| +|» SetPasswordRequest|body|string| 是 | 旧密码|none| +|» new_password|body|string| 是 | 新密码|none| + +> 返回示例 + +> 200 Response + +```json +{ + "status": 0, + "identity": "string", + "message": "string", + "timeseq": 0 +} +``` + +#### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +#### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» status|integer|true|none|状态码|none| +|» identity|string|true|none|标识码|none| +|» message|string|true|none|状态说明|none| +|» timeseq|integer|true|none|响应时间序列|none| + +### 获取会员的相关统计数据 + +POST /passport.Info.Statistics + +> Body 请求参数 + +```json +{ + "field": [ + "string" + ] +} +``` + +#### 请求参数 + +|名称|位置|类型|必选|中文名|说明| +|---|---|---|---|---|---| +|Request-Id|header|string| 是 ||请求ID| +|Content-Type|header|string| 是 ||传输格式| +|Workspace|header|string| 是 ||项目名称| +|Authorization|header|string| 否 ||用户通行证Token| +|body|body|object| 否 ||none| +|» field|body|[string]| 是 | 要获取的统计数据字段|none| + +> 返回示例 + +> 200 Response + +```json +{ + "Data": {} +} +``` + +#### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +#### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» Data|object|true|none|数据以Map格式输出|none| + +###login 通行证模块-登陆 + +### 通过密码登录 + +POST /passport.Login.Pwd + +> Body 请求参数 + +```json +{ + "account": "string", + "password": "string", + "device": "string" +} +``` + +#### 请求参数 + +|名称|位置|类型|必选|中文名|说明| +|---|---|---|---|---|---| +|Request-Id|header|string| 是 ||请求ID| +|Content-Type|header|string| 是 ||传输格式| +|Workspace|header|string| 是 ||项目名称| +|Authorization|header|string| 否 ||用户通行证Token| +|body|body|object| 否 ||none| +|» account|body|string| 是 | 账号 必填|none| +|» password|body|string| 是 | 密码 必填|none| +|» device|body|string| 是 | 设备 必填|none| + +> 返回示例 + +> 200 Response + +```json +{ + "identity": "string", + "data_bind": "string", + "token": "string", + "extend": {} +} +``` + +#### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +#### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» identity|string|true|none|用户唯一码|none| +|» data_bind|string|true|none|数据绑定的相关说明,PASS通过,NOPHONE没有绑定手机号,NOPWD没有设置密码,NOBIND没有手机号同时没有密码|none| +|» token|string|true|none|用户凭证|none| +|» extend|object|true|none|扩展字段|none| + +### 通过验证码登录 + +POST /passport.Login.Code + +> Body 请求参数 + +```json +{ + "country": "string", + "phone": "string", + "code": "string", + "device": "string" +} +``` + +#### 请求参数 + +|名称|位置|类型|必选|中文名|说明| +|---|---|---|---|---|---| +|Request-Id|header|string| 是 ||请求ID| +|Content-Type|header|string| 是 ||传输格式| +|Workspace|header|string| 是 ||项目名称| +|Authorization|header|string| 否 ||用户通行证Token| +|body|body|object| 否 ||none| +|» country|body|string| 是 | 国家|none| +|» phone|body|string| 是 | 手机号码|none| +|» code|body|string| 是 | 验证码|none| +|» device|body|string| 是 | 设备|none| + +> 返回示例 + +> 200 Response + +```json +{ + "identity": "string", + "data_bind": "string", + "token": "string", + "extend": {} +} +``` + +#### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +#### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» identity|string|true|none|用户唯一码|none| +|» data_bind|string|true|none|数据绑定的相关说明,PASS通过,NOPHONE没有绑定手机号,NOPWD没有设置密码,NOBIND没有手机号同时没有密码|none| +|» token|string|true|none|用户凭证|none| +|» extend|object|true|none|扩展字段|none| + +### 通过Wechat登录 + +POST /passport.Login.WeChatByCode + +> Body 请求参数 + +```json +{ + "code": "14" +} +``` + +#### 请求参数 + +|名称|位置|类型|必选|中文名|说明| +|---|---|---|---|---|---| +|Request-Id|header|string| 是 ||请求ID| +|Content-Type|header|string| 是 ||传输格式| +|Workspace|header|string| 是 ||项目名称| +|Authorization|header|string| 否 ||用户通行证Token| +|body|body|object| 否 ||none| +|» code|body|string| 是 | WeChat code|none| + +> 返回示例 + +> 200 Response + +```json +{ + "identity": "string", + "data_bind": "string", + "token": "string", + "extend": {} +} +``` + +#### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +#### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» identity|string|true|none|用户唯一码|none| +|» data_bind|string|true|none|数据绑定的相关说明,PASS通过,NOPHONE没有绑定手机号,NOPWD没有设置密码,NOBIND没有手机号同时没有密码|none| +|» token|string|true|none|用户凭证|none| +|» extend|object|true|none|扩展字段|none| + +### 通过AppleID登录 + +POST /passport.Login.AppleID + +> Body 请求参数 + +```json +{ + "apple_id": "string", + "desc": "string", + "device": "string" +} +``` + +#### 请求参数 + +|名称|位置|类型|必选|中文名|说明| +|---|---|---|---|---|---| +|Request-Id|header|string| 是 ||请求ID| +|Content-Type|header|string| 是 ||传输格式| +|Workspace|header|string| 是 ||项目名称| +|Authorization|header|string| 否 ||用户通行证Token| +|body|body|object| 否 ||none| +|» apple_id|body|string| 是 | apple id|none| +|» desc|body|string| 是 | 描述|none| +|» device|body|string| 是 | 设备|none| + +> 返回示例 + +> 200 Response + +```json +{ + "identity": "string", + "data_bind": "string", + "token": "string", + "extend": {} +} +``` + +#### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +#### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» identity|string|true|none|用户唯一码|none| +|» data_bind|string|true|none|数据绑定的相关说明,PASS通过,NOPHONE没有绑定手机号,NOPWD没有设置密码,NOBIND没有手机号同时没有密码|none| +|» token|string|true|none|用户凭证|none| +|» extend|object|true|none|扩展字段|none| + +### 通过验证码登录并注册 + +POST /passport.Login.CodeAndRegister + +> Body 请求参数 + +```json +{ + "country": "string", + "phone": "string", + "code": "string", + "device": "string" +} +``` + +#### 请求参数 + +|名称|位置|类型|必选|中文名|说明| +|---|---|---|---|---|---| +|Request-Id|header|string| 是 ||请求ID| +|Content-Type|header|string| 是 ||传输格式| +|Workspace|header|string| 是 ||项目名称| +|Authorization|header|string| 否 ||用户通行证Token| +|body|body|object| 否 ||none| +|» country|body|string| 是 | 国家|none| +|» phone|body|string| 是 | 手机号码|none| +|» code|body|string| 是 | 验证码|none| +|» device|body|string| 是 | 设备|none| + +> 返回示例 + +> 200 Response + +```json +{ + "identity": "string", + "data_bind": "string", + "token": "string", + "extend": {} +} +``` + +#### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +#### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» identity|string|true|none|用户唯一码|none| +|» data_bind|string|true|none|数据绑定的相关说明,PASS通过,NOPHONE没有绑定手机号,NOPWD没有设置密码,NOBIND没有手机号同时没有密码|none| +|» token|string|true|none|用户凭证|none| +|» extend|object|true|none|扩展字段|none| + +###register 通行证模块-注册 + +### AppleID注册 + +POST /passport.Register.AppleID + +> Body 请求参数 + +```json +{ + "origin": "string", + "account": "string", + "phone": "string", + "password": "string", + "code": "string", + "wechat_union_id": "string", + "wechat_open_id": "string", + "apple_id": "string", + "nickname": "string", + "type": "string", + "device": "string" +} +``` + +#### 请求参数 + +|名称|位置|类型|必选|中文名|说明| +|---|---|---|---|---|---| +|Request-Id|header|string| 是 ||请求ID| +|Content-Type|header|string| 是 ||传输格式| +|Workspace|header|string| 是 ||项目名称| +|Authorization|header|string| 否 ||用户通行证Token| +|body|body|object| 否 ||none| +|» origin|body|string| 是 | 来源,归属|none| +|» account|body|string| 是 | 帐号|none| +|» phone|body|string| 是 | 手机号|none| +|» password|body|string| 是 | 密码|none| +|» code|body|string| 是 | 验证码|none| +|» wechat_union_id|body|string| 是 | 微信UnionID|none| +|» wechat_open_id|body|string| 是 | 微信OpenID|none| +|» apple_id|body|string| 是 | Apple ID|none| +|» nickname|body|string| 是 | 昵称|none| +|» type|body|string| 是 | 类型|none| +|» device|body|string| 是 | 设备|none| + +> 返回示例 + +> 200 Response + +```json +{ + "identity": "string", + "data_bind": "string", + "token": "string", + "extend": {} +} +``` + +#### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +#### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» identity|string|true|none|用户唯一码|none| +|» data_bind|string|true|none|数据绑定的相关说明,PASS通过,NOPHONE没有绑定手机号,NOPWD没有设置密码,NOBIND没有手机号同时没有密码|none| +|» token|string|true|none|用户Header所需Token|none| +|» extend|object|true|none|扩展字段|none| + +### 帐号密码注册 + +POST /passport.Register.Pwd + +> Body 请求参数 + +```json +{ + "origin": "string", + "account": "string", + "phone": "string", + "password": "string", + "code": "string", + "wechat_union_id": "string", + "wechat_open_id": "string", + "apple_id": "string", + "nickname": "string", + "type": "string", + "device": "string" +} +``` + +#### 请求参数 + +|名称|位置|类型|必选|中文名|说明| +|---|---|---|---|---|---| +|Request-Id|header|string| 是 ||请求ID| +|Content-Type|header|string| 是 ||传输格式| +|Workspace|header|string| 是 ||项目名称| +|Authorization|header|string| 否 ||用户通行证Token| +|body|body|object| 否 ||none| +|» origin|body|string| 是 | 来源,归属|none| +|» account|body|string| 是 | 帐号|none| +|» phone|body|string| 是 | 手机号|none| +|» password|body|string| 是 | 密码|none| +|» code|body|string| 是 | 验证码|none| +|» wechat_union_id|body|string| 是 | 微信UnionID|none| +|» wechat_open_id|body|string| 是 | 微信OpenID|none| +|» apple_id|body|string| 是 | Apple ID|none| +|» nickname|body|string| 是 | 昵称|none| +|» type|body|string| 是 | 类型|none| +|» device|body|string| 是 | 设备|none| + +> 返回示例 + +> 200 Response + +```json +{ + "identity": "string", + "data_bind": "string", + "token": "string", + "extend": {} +} +``` + +#### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +#### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» identity|string|true|none|用户唯一码|none| +|» data_bind|string|true|none|数据绑定的相关说明,PASS通过,NOPHONE没有绑定手机号,NOPWD没有设置密码,NOBIND没有手机号同时没有密码|none| +|» token|string|true|none|用户Header所需Token|none| +|» extend|object|true|none|扩展字段|none| + +### 手机验证码注册 + +POST /passport.Register.Code + +> Body 请求参数 + +```json +{ + "origin": "string", + "account": "string", + "phone": "string", + "password": "string", + "code": "string", + "wechat_union_id": "string", + "wechat_open_id": "string", + "apple_id": "string", + "nickname": "string", + "type": "string", + "device": "string" +} +``` + +#### 请求参数 + +|名称|位置|类型|必选|中文名|说明| +|---|---|---|---|---|---| +|Request-Id|header|string| 是 ||请求ID| +|Content-Type|header|string| 是 ||传输格式| +|Workspace|header|string| 是 ||项目名称| +|Authorization|header|string| 否 ||用户通行证Token| +|body|body|object| 否 ||none| +|» origin|body|string| 是 | 来源,归属|none| +|» account|body|string| 是 | 帐号|none| +|» phone|body|string| 是 | 手机号|none| +|» password|body|string| 是 | 密码|none| +|» code|body|string| 是 | 验证码|none| +|» wechat_union_id|body|string| 是 | 微信UnionID|none| +|» wechat_open_id|body|string| 是 | 微信OpenID|none| +|» apple_id|body|string| 是 | Apple ID|none| +|» nickname|body|string| 是 | 昵称|none| +|» type|body|string| 是 | 类型|none| +|» device|body|string| 是 | 设备|none| + +> 返回示例 + +> 200 Response + +```json +{ + "identity": "string", + "data_bind": "string", + "token": "string", + "extend": {} +} +``` + +#### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +#### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» identity|string|true|none|用户唯一码|none| +|» data_bind|string|true|none|数据绑定的相关说明,PASS通过,NOPHONE没有绑定手机号,NOPWD没有设置密码,NOBIND没有手机号同时没有密码|none| +|» token|string|true|none|用户Header所需Token|none| +|» extend|object|true|none|扩展字段|none| + +### Wechat注册 + +POST /passport.Register.WeChat + +> Body 请求参数 + +```json +{ + "origin": "string", + "account": "string", + "phone": "string", + "password": "string", + "code": "string", + "wechat_union_id": "string", + "wechat_open_id": "string", + "apple_id": "string", + "nickname": "string", + "type": "string", + "device": "string" +} +``` + +#### 请求参数 + +|名称|位置|类型|必选|中文名|说明| +|---|---|---|---|---|---| +|Request-Id|header|string| 是 ||请求ID| +|Content-Type|header|string| 是 ||传输格式| +|Workspace|header|string| 是 ||项目名称| +|Authorization|header|string| 否 ||用户通行证Token| +|body|body|object| 否 ||none| +|» origin|body|string| 是 | 来源,归属|none| +|» account|body|string| 是 | 帐号|none| +|» phone|body|string| 是 | 手机号|none| +|» password|body|string| 是 | 密码|none| +|» code|body|string| 是 | 验证码|none| +|» wechat_union_id|body|string| 是 | 微信UnionID|none| +|» wechat_open_id|body|string| 是 | 微信OpenID|none| +|» apple_id|body|string| 是 | Apple ID|none| +|» nickname|body|string| 是 | 昵称|none| +|» type|body|string| 是 | 类型|none| +|» device|body|string| 是 | 设备|none| + +> 返回示例 + +> 200 Response + +```json +{ + "identity": "string", + "data_bind": "string", + "token": "string", + "extend": {} +} +``` + +#### 返回结果 + +|状态码|状态码含义|说明|数据模型| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| + +#### 返回数据结构 + +状态码 **200** + +|名称|类型|必选|约束|中文名|说明| +|---|---|---|---|---|---| +|» identity|string|true|none|用户唯一码|none| +|» data_bind|string|true|none|数据绑定的相关说明,PASS通过,NOPHONE没有绑定手机号,NOPWD没有设置密码,NOBIND没有手机号同时没有密码|none| +|» token|string|true|none|用户Header所需Token|none| +|» extend|object|true|none|扩展字段|none| \ No newline at end of file