昨天通過了第七關之後,今天要來接續第八關
這個錯誤跟前面第二關遇到的錯誤相同,所以我們可以參考前面的方式來進行修改
首先看到 controller/assertion.go
中的 StartAssertionHandler
我們一樣將 session 中的 challenge 進行 base64 編碼
sessionData.Challenge = base64.RawStdEncoding.EncodeToString([]byte(sessionData.Challenge))
assertionSessionData = sessionData
像是下面這樣
接著看到 FinishAssertionHandler
我們一樣用在前面 WebAuthn Registration 的 decodedChallenge
方式來做修改
decodedChallenge, err := base64.RawURLEncoding.DecodeString(challenge)
if err != nil {
ctx.JSON(
http.StatusBadRequest,
api.CommonResponse{
Status: "failed",
ErrorMessage: "failed to decode challenge, error: " + err.Error(),
},
)
return
}
challenge = string(decodedChallenge)
像是下面這樣
再重新執行一次,就成功通過第八關了~
明天我們再繼續勇闖第九關!