-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathapi_auth_sign.go
48 lines (38 loc) · 947 Bytes
/
api_auth_sign.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package getui
import (
"encoding/json"
)
type SignParam struct {
Sign string `json:"sign"`
Timestamp string `json:"timestamp"`
AppKey string `json:"appkey"`
}
//token
type SignResult struct {
Result string `json:"result"`
AuthToken string `json:"auth_token"`
}
//获取Auth签名
//http://docs.getui.com/getui/server/rest/other_if/
func GetGeTuiToken(appID string, appKey string, masterSecret string) (string, error) {
signStr, timestamp := Signature(appKey, masterSecret)
param := &SignParam{
Sign: signStr,
Timestamp: timestamp,
AppKey: appKey,
}
bodyByte, err := json.Marshal(param)
if err != nil {
return "", err
}
url := API_URL + appID + "/auth_sign"
result, err := SendPost(url, "", bodyByte)
if err != nil {
return "", err
}
tokenResult := new(SignResult)
if err := json.Unmarshal([]byte(result), &tokenResult); err != nil {
return "", err
}
return tokenResult.AuthToken, nil
}