第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將 JWT 有效負載轉換回結構

將 JWT 有效負載轉換回結構

Go
慕容3067478 2023-07-17 14:15:45
我在將 JWT 有效負載轉換回 golang 中的結構時遇到問題我有兩臺相互通信的服務器,并有 JWT 身份驗證來加強安全性。有效負載使用以下結構type ResponseBody struct {    Header       dto.MessageHeader       `json:"message_header"`    OrderBodyParams dto.OrderBodyParams `json:"order_response"`    Status              string                  `json:"status"`    ErrorMessage        string                  `json:"errors"`}服務器 A 獲取此結構 - 將其轉換為字節(jié)日期并將其作為 JWT 有效負載發(fā)送相關代碼如下func request(secretKey string, path string, method string, requestParams interface{}, response interface{}) error {    tr := &http.Transport{        TLSClientConfig: &tls.Config{InsecureSkipVerify: true},    }    client := &http.Client{        Timeout:   time.Second * 15,        Transport: tr,    }    //convert body into byte data    requestBody, err := json.Marshal(requestParams)    if err != nil {        return err    }    tokenString, expirationTime, err := authentication.GenerateJWTAuthToken(secretKey, requestBody)    if err != nil {      return err    }    req, _ := http.NewRequest(method, path, bytes.NewBuffer([]byte(tokenString)))    req.Header.Set("Content-Type", "application/json")    req.AddCookie(&http.Cookie{        Name:    "token",        Value:   tokenString,        Expires: expirationTime,    })    _, err = client.Do(req)    if err != nil {       return err    }    return nil}正如您所看到的,我只是將正文轉換為字節(jié)數據 - 并將其轉換為 JWT 有效負載函數GenerateJWTAuthToken如下所示type Claims struct {    Payload []byte `json:"payload"`    jwt.StandardClaims}func GenerateJWTAuthToken(secretKey string, payload []byte) (string, time.Time, error) {    var jwtKey = []byte(secretKey)    // Set expiration to 5 minutes from now (Maybe lesser?)    expirationTime := time.Now().Add(5 * time.Minute)    // create the payload    claims := &Claims{        Payload: payload,        StandardClaims: jwt.StandardClaims{            ExpiresAt: expirationTime.Unix(),        },    }
查看完整描述

1 回答

?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

您正在使用 JSON 來編組您的結構:

requestBody, err := json.Marshal(requestParams)`

因此,您應該使用 JSON 解組來獲取結構。然而,你習慣于binary.Read()閱讀它:

err = binary.Read(bytes.NewReader(payload), binary.LittleEndian, &requestData)

相反,這樣做:

err = json.Unmarshal(payload, &requestData)


查看完整回答
反對 回復 2023-07-17
  • 1 回答
  • 0 關注
  • 157 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號