feat(passport): 添加用户修改密码功能并优化响应解析
- 新增 ChangePassword 方法支持用户修改密码- 添加 ChangePasswordRequest 和 ChangePasswordResponse 结构体 - 实现用户修改密码的请求创建和响应解析 - 优化 response.go 中的解析逻辑,支持 text 格式 - 更新 client_test.go 中的测试用例
This commit is contained in:
		
							parent
							
								
									c8e5c19dc7
								
							
						
					
					
						commit
						90c2b1213a
					
				@ -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
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -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())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										42
									
								
								services/passport/getpwd.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								services/passport/getpwd.go
									
									
									
									
									
										Normal 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
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user