6
0

feat(passport): 添加用户修改密码功能并优化响应解析

- 新增 ChangePassword 方法支持用户修改密码- 添加 ChangePasswordRequest 和 ChangePasswordResponse 结构体
- 实现用户修改密码的请求创建和响应解析
- 优化 response.go 中的解析逻辑,支持 text 格式
- 更新 client_test.go 中的测试用例
This commit is contained in:
liguanjie 2025-09-09 17:54:16 +08:00
parent c8e5c19dc7
commit 90c2b1213a
4 changed files with 68 additions and 1 deletions

View File

@ -110,11 +110,12 @@ func Unmarshal(response AcsResponse, httpResponse *http.Response, format string)
return
}
if format != "xml" {
if format != "xml" && format != "text" {
err = jsoniter.Unmarshal(response.GetHttpContentBytes(), response)
if err != nil {
return errors.New("json Unmarshal:" + err.Error())
}
}
return
}

View File

@ -63,3 +63,11 @@ func (c *Client) GetUserGameSign(req *GetUserGameSignRequest) (response *GetUser
err = c.DoAction(req, response)
return
}
// ChangePassword
// 用户修改密码
func (c *Client) ChangePassword(req *ChangePasswordRequest) (response *ChangePasswordResponse, err error) {
response = CreateChangePasswordResponse()
err = c.DoAction(req, response)
return
}

View File

@ -78,3 +78,19 @@ func TestGetUserGameSign(t *testing.T) {
t.Logf("resp code:%+v", resp.Code)
t.Logf("resp data:%+v", resp.Data)
}
// 测试用户修改密码
func TestChangePassword(t *testing.T) {
client, err := NewClient()
if err != nil {
t.Error(err)
}
req := CreateChangePasswordRequest("rz35990497", "654321")
req.AcceptFormat = "text"
resp, err := client.ChangePassword(req)
if err != nil {
t.Error(err)
}
// 记录文本结果
t.Logf("resp data:%+v", resp.GetHttpContentString())
}

View File

@ -0,0 +1,42 @@
package passport
import (
"fmt"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
)
type ChangePasswordRequest struct {
*requests.RpcRequest
}
func CreateChangePasswordRequest(userName string, newPwd string) (req *ChangePasswordRequest) {
ts, sign := GetSign()
req = &ChangePasswordRequest{
RpcRequest: &requests.RpcRequest{},
}
req.InitWithApiInfo(HOST, VERSION, "/remote_login.php")
req.FormParams = map[string]string{
"act": "getpwd",
"do": "passwd",
"username": userName,
"newpwd": newPwd,
"time": fmt.Sprintf("%v", ts),
"sign": sign,
}
req.Method = requests.POST
return
}
func CreateChangePasswordResponse() (response *ChangePasswordResponse) {
response = &ChangePasswordResponse{
BaseResponse: &responses.BaseResponse{},
}
return
}
type ChangePasswordResponse struct {
*responses.BaseResponse
}