【发布时间】:2019-11-23 09:46:13
【问题描述】:
我在编码数据时遇到问题。我的令牌有 1228 个字符和
let data = Data(base64Encoded: tokenString)!
工作正常,但是当我向令牌添加一些信息并且我的令牌有 1263 个字符时,Data(base64Encoded:) 返回 nil。
我认为问题在于字符串长度或Data(base64Encoded:)。
Data(base64Encoded:) 对字符长度有限制吗?
请给我一些关于这个问题的信息。
【问题讨论】:
-
如何向令牌“添加一些信息”?如果您只是将另一个字符串附加到它,它可能不再是有效的 base64 字符串,因此
Data(base64Encoded:)将返回 nil。 -
我使用 JWT 令牌并将一些数据添加到 PAYLOAD:DATA
-
如果您共享显示令牌是什么以及您用于添加数据的代码的代码,也许会有所帮助。
-
让 data = Data(base64Encoded: "eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyMTF9")!工作正常,但让 data= Data(base64Encoded: "eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyMX0")! return nil 问题在于字符串长度。 base64Encode 可能必须是多个 4。为什么?请告诉我或链接有关此问题的文章
-
是的,可能是编码问题。太多的评论,所以即使编码失败的问题仍然悬而未决,所以作为答案发布:-)