illegal base64 data at input byte 原因之一(go)

问题描述

k8s api-server解析websocket的base64的token报错:

Unable to authenticate the request due to an error: invalid base64.bearer.authorization token encoding

然后我尝试go代码解析我的base64的token值:

    decodedToken, err := base64.RawURLEncoding.DecodeString(encodedToken)
    fmt.Println(decodedToken)

    if err != nil {
        fmt.Println(err)
    }

然后果然解析报错了,报错打印如下:

illegal base64 data at input byte 1230

问题解决

后来发下base64的token值中最后包含:“=”等于号,导致上述go解析报错,导致apiserver解析token失败,将base64的token值中最后面的“=”号删掉, 问题得到解决~

=========================================================

这个报错浪费了一上午时间,感觉挺莫名其妙的,因为正常用linux base64 编码token就是最后就会产生等于号,但是go解析这个包含等于号的base64 的token就过不去。。。