Skip to content

Commit

Permalink
fix bug
Browse files Browse the repository at this point in the history
  • Loading branch information
shanliu committed Dec 30, 2023
1 parent f33e6ea commit e43c002
Show file tree
Hide file tree
Showing 160 changed files with 5,176 additions and 2,005 deletions.
66 changes: 52 additions & 14 deletions sdk/README.MD
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,11 @@
| request_ip | String || 40 | 客户端IP,存在时加入签名 | 127.0.0.1 |
| method | String || 128 | 接口名称,可以放到URL中,存在时加入签名 | product.detail |
| token | String ||| OAUTH登录后获取TOKEN,存在时需加入签名 | MTQtSldES1RIUVVZT0NGUkVNUEdJQlpBTlhM |
| payload | String ||| Header的Content-type非 application/json 时的有效,内容为JSON | {"id":1} |
| payload | String ||| Header的Content-type非 application/json 时的有效,内容为无换行的JSON | {"id":1} |

> POST参数:
> 仅当 Header的 Content-type 为 application/json 时有效,内容为JSON字符串,使用此方式时忽略GET的payload参数
> 仅当 Header的 Content-type 为 application/json 时有效,内容为JSON字符串,使用此方式将会忽略GET的payload参数
### 签名生成方法及示例:

Expand Down Expand Up @@ -108,7 +108,7 @@ GET:app_id=1212f&payload=%7B%22client_id%22%3A%221212f%22%7D&request_ip=fe80%3A%

> 请求路径为: ${OAUTH_HOST}/oauth.html
> 重定向到生成的路径
> GET参数:
| 参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
|---------------|---------|------|------|----------------|------------|
Expand Down Expand Up @@ -144,14 +144,24 @@ http://127.0.0.1:8080/?code=27b5591cb788309dfee63da4fc264a10&state=aa
|---------------|---------|------|------|----------------|------------|
| X-Request-ID | String || 32 | 请求ID,每次请求不同 | xxxxx12456 |

> GET跟POST参数:
> GET参数:
| 参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
|---------------|---------|------|------|----------------|------------|
| client_id | String || 32 | 应用ID,跟非OAUTH的参数app_id相同| xxxxx12456 |
| client_secret | String || 32 |OAuthSecret,从后台获取,注意:不是AppSecret | 2a97bf1b4f075b0ca7467e7c6b223f89 |
| code | String || 4 | 登录后返回的code| 2a97bf1b4f075b0ca7467e7c6b223f89 |

> 返回response数据说明:
| 参数 | 类型 | 是否必存在 | 描述 |
|---------------|---------|------|----------------|
| access_token | String || 授权TOKEN|
| expires_in | u64 || 过期时间|
| openid | String ||内部系统ID|
| refresh_token | String || null|
| scope | String || 已授权范围|

#### 获取token示例:

> 请求示例
Expand All @@ -164,7 +174,7 @@ GET:http://www.lsys.cc/oauth/token?client_id=1212f&client_secret=2a97bf1b4f075b0
{
"response": {
"access_token": "a4985f6747962b0ceb1533a0e28dd1fc",
"expires_in": "1682929356",
"expires_in": 1682929356,
"openid": "1",
"refresh_token": null,
"scope": "user_info"
Expand All @@ -190,14 +200,25 @@ GET:http://www.lsys.cc/oauth/token?client_id=1212f&client_secret=2a97bf1b4f075b0
|---------------|---------|------|------|----------------|------------|
| X-Request-ID | String || 32 | 请求ID,每次请求不同 | xxxxx12456 |

> GET跟POST参数:
> GET参数:
| 参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
|---------------|---------|------|------|----------------|------------|
| client_id | String || 32 | 应用ID,跟非OAUTH的参数app_id相同| xxxxx12456 |
| client_secret | String || 32 |OAuthSecret,从后台获取,注意:不是AppSecret | 2a97bf1b4f075b0ca7467e7c6b223f89 |
| refresh_token | String || 4 | 通过oauth/token获取的TOKEN| 2a97bf1b4f075b0ca7467e7c6b223f89 |


> 返回response数据说明:
| 参数 | 类型 | 是否必存在 | 描述 |
|---------------|---------|------|---------------|
| access_token | String || 授权TOKEN|
| expires_in | u64 || 过期时间|
| openid | String ||内部系统ID|
| refresh_token | String || 刷新前TOKEN|
| scope | String || 已授权范围|

#### 获取token示例:

> 请求示例
Expand Down Expand Up @@ -233,18 +254,24 @@ GET:http://www.lsys.cc/oauth/refresh_token?client_id=1212f&client_secret=2a97bf1
#### 接口参数说明

> GET参数 method 为 `info` ,其他参数查看`公共参数`说明
> POST参数[JSON序列化]

> HEADER参数:
| 参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
|---------------|---------|------|------|----------------|------------|
| X-Request-ID | String || 32 | 请求ID,每次请求不同 | xxxxx12456 |

> GET跟POST参数:
> GET参数:
| 参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
|------------|---------|------|-------|----------------------------------|--------------------------------------|
| app_id | String || 32 | 应用ID | test1 |
| version | String || 3 | 调用的接口版本 | 固定为:2.0 |
| timestamp | String || 19 | 发送请求的时间,格式"yyyy-MM-dd HH:mm:ss" | 2014-07-24 03:07:50 |
| sign | String || 32 | 请求参数的签名串 | 生成方式参见`签名生成` |
| request_ip | String || 40 | 客户端IP,存在时加入签名 | 127.0.0.1 |
| method | String || 4 | 获取用户信息 | 固定为:info |

> POST参数[JSON序列化]:
| 参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
|---------------|---------|------|------|----------------|------------|
Expand All @@ -255,6 +282,17 @@ GET:http://www.lsys.cc/oauth/refresh_token?client_id=1212f&client_secret=2a97bf1
| email | bool || 1 |用户邮箱 需要 scope:user_email 授权 | true |
| mobile | bool || 1 |用户手机号 需要 scope:user_mobile 授权 | true |

> 返回response数据说明:

| 参数 | 类型 | 是否必存在 | 描述 |
|---------------|---------|------|-----------|
| user_data.address | object || 用户地址|
| user_data.email | object || 用户邮箱|
| user_data.info | object ||用户信息|
| user_data.mobile | object || 用户手机|
| user_data.name | object || 登录用户名|
| user_data.user | object || 用户基本信息|

#### 获取登录用户示例:

Expand Down Expand Up @@ -339,8 +377,8 @@ POST:{"address":false,"email":false,"info":false,"mobile":false,"name":true,"use
},
"response": {
"product":{
"name":"Iphone",
"sku":"111_11"
"name":"ddd",
"cat":"豆包"
}
}
}
Expand Down
1 change: 1 addition & 0 deletions sdk/go/.gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
go.sum
go.work.sum
example/basic/go.sum
example/sub_app/go.sum
.idea
15 changes: 15 additions & 0 deletions sdk/go/.vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Launch Package",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${workspaceFolder}/examples/sub_app"
}
]
}
4 changes: 1 addition & 3 deletions sdk/go/examples/basic/README.MD
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
### 基本接口调用

> 直接调用 应用管理 服务
> 示例包含 oauth 登录 跟 app 信息获取
> HTTP接口封装调用示例
8 changes: 5 additions & 3 deletions sdk/go/examples/basic/app_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,11 @@ import (
"testing"
)

func TestApp(t *testing.T) {
// 获取子应用数据,用于外部系统校验

func TestGetSubAppInfo(t *testing.T) {
sysApi := lSysApi.NewRestApi(&lSysApi.RestApiConfig{
//应用在 http://www.lsys.cc/ui/#/user/app 申请
//应用在 https://www.lsys.cc/app.html#/user/app 申请
AppId: "1212f", //应用ID
AppSecret: "3f95638a1e07b87df2b64e09c2541dac", //应用Secret
AppHost: "http://www.lsys.cc", //应用HOST
Expand All @@ -19,7 +21,7 @@ func TestApp(t *testing.T) {

//示例1
//app信息获取
err1, data := sysApi.AppInfo(context.Background(), "1212f")
err1, data := sysApi.AppInfo(context.Background(), "afsd")
if err1 == nil {
fmt.Printf("token :%s \n", data)
} else {
Expand Down
37 changes: 20 additions & 17 deletions sdk/go/examples/basic/mail_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,11 @@ import (
"testing"
)

// 邮件发送示例

func TestMail(t *testing.T) {
sysApi := lSysApi.NewRestApi(&lSysApi.RestApiConfig{
//应用在 http://www.lsys.cc/ui/#/user/app 申请
//应用在 https://www.lsys.cc/app.html#/user/app 申请
AppId: "1212f", //应用ID
AppSecret: "3f95638a1e07b87df2b64e09c2541dac", //应用Secret
AppHost: "http://www.lsys.cc", //应用HOST
Expand All @@ -19,32 +21,33 @@ func TestMail(t *testing.T) {
//示例1
//邮件发送示例
for i := 0; i < 1000; i++ {

err1 := sysApi.MailSend(
var mail []string
for j := 0; j < 100; j++ {
mail = append(mail, fmt.Sprintf("shan.liu@msn%d.com", j))
}
err1, data := sysApi.MailSend(
context.Background(),
[]string{
fmt.Sprintf("shan.liu@msn%d.com", i),
},
mail,
"dddd",
map[string]string{
"code": "sss",
},
"", //非必须 例:2023-12-11 11:11:11
"", //回复邮箱
"", //取消句柄,取消发送用 例:dddd
1,
)
if err1 == nil {
fmt.Printf("ok\n")
println("send OK")
//取消发送
err2, res2 := sysApi.MailCancel(context.Background(), []string{data[0].Id})
if err2 == nil {
println(res2)
} else {
fmt.Printf("err :%s", err2.Error())
}
} else {
fmt.Printf("err :%s \n", err1)
fmt.Printf("err :%s \n", err1.Error())
}

}
//取消发送
//err1 = sysApi.MailCancel(context.Background(), "dddd")
//if err1 == nil {
// fmt.Printf("ok")
//} else {
// fmt.Printf("err :%s \n", err1)
//}

}
58 changes: 0 additions & 58 deletions sdk/go/examples/basic/main.go

This file was deleted.

71 changes: 71 additions & 0 deletions sdk/go/examples/basic/oauth_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
package main

import (
"context"
"encoding/hex"
"fmt"
lSysApi "lsysrest/lsysrest"
"math/rand"
"testing"
)

// oauth 登录示例

func getApi() *lSysApi.RestApi {
return lSysApi.NewRestApi(&lSysApi.RestApiConfig{
//应用在 https://www.lsys.cc/app.html#/user/app 申请
AppId: "1212f", //应用ID
AppSecret: "3f95638a1e07b87df2b64e09c2541dac", //应用Secret
AppHost: "http://www.lsys.cc", //应用HOST
AppOAuthSecret: "2a97bf1b4f075b0ca7467e7c6b223f89", //应用OauthSecret
AppOAuthHost: "http://www.lsys.cc/oauth.html",
})
}

// 第一步
// 登录地址
func TestGetLoginUrl(t *testing.T) {
api := getApi()
b := make([]byte, 6)
rand.Read(b)
url := api.OAuthAuthorizationUrl(context.Background(), "http://127.0.0.1:8080/", "user_info,user_mobile", hex.EncodeToString(b))
fmt.Printf("url :%s \n", url)
}

// 第二步
// 登录后获取TOKEN
func TestGetToken(t *testing.T) {
api := getApi()
er, token := api.OAuthAccessToken(context.Background(), "c936ed75412a0b8f")
if er == nil {
fmt.Printf("token :%s \n", token.AccessToken)
} else {
fmt.Printf("err :%s \n", er.Error())
return
}
}

// //通过TOKEN得到用户信息
func TestGetUserData(t *testing.T) {
api := getApi()
tokenApi := api.TokenRestApi("58f34acd692b70e1")
err, data := tokenApi.OAuthUserInfo(context.Background(), true, true, false, false, false, false)
if err == nil {
fmt.Printf("sub app output :%s", data)
} else {
fmt.Printf("error :%s", err.Error())
}
}

// //刷新TOKEN
func TestRefreshToken(t *testing.T) {
api := getApi()
tokenApi := api.TokenRestApi("58f34acd692b70e1")
er, token1 := tokenApi.OAuthRefreshToken(context.Background())
if er == nil {
fmt.Printf("token :%s \n", token1.AccessToken)
} else {
fmt.Printf("err :%s \n", er.Error())
return
}
}
Loading

0 comments on commit e43c002

Please sign in to comment.