假如sso单点登录平台是java写的,我的engineercms是golang写的,单点登录sso平台后返回java生成的token,我的ecms来解析这个token。一直出错,总结和解决如下:

坑1:secret长度和 要求,随便写一个不行,比如“hello”这样不行,短了不行,比如“abcdefghijklmnopqrstuvwxyz”这个不行。这个是可行的:“whatthefuck123weishenmebuneng123”

坑2:java生成的token,在golang上解析需要encode……如下,直接用byte(secret)不行。

坑3:用URLENcoding不行,要用RawStdEncoding。

建议:

在jwt.io网站在线检测——总是出现invalid signature问题

将java生成的token拷贝的网站左侧输入框内,右侧下方填写secret和勾选base64 encoded。如下图: