提出问题:
最近在搞一下小程序授权登录(用户注册功能),在密钥,appId等内容都没问题的情况下,请求授权注册接口等时候一直报错 Illegal Buffer。
问题原因:
在解密encryptedData数据的时候,传过来的数据里面可能会有+等符号,
如下:
encryptedData: 'BQRDHWz16TcmEOkp1yV0eMd8L0a7orJeA1y8uNZycPHO41MBZmYm1jbMMh36tozePbtnbdxovStZhEbMKW9fYBpUKcXDedcChyowIXuYNic2CSItr4lv9TI47kfmBrhYE39wGE20BMtj8ORVQ2xM5A3X1uL7HHI5IZbnEqQS1W38PzGbJBW8IkybFQHXwtvigWquekDe1DmV1LA8vEFflUIjfuA5cWgGJJstzxi8bjtUMjQC/hcPRb+7pNzpo+jmtE0jU9F/a5V95lK6foYTu1ErWjEezaJ3YwujWK5oq581/b5TIL+vJPUn+vdXj71plfrH7WnSoC0ZS3yF6ToBcH17GAZsyaiGqOl88NVtkuwCA/WGMqpvnAUfromw5kaZj1QFA6U/N/lF43HdOyhjQUAkPsIMJLaHkfso6Aww0IYTcIc+qXOV8Rcrh0h61R34Dqkn11iE4mo1fmUc14ynvd4d6KXB2AvqOl+dHOd+SnRGYwTINAkPuyhxQRA/Yqj2F6MlUdKZxth73w2JEUYkoA==',
iv: 'GcF/mmbBBQA7kJOSR9I/7w=='
这些符号传递给服务器就会消失,导致微信提供等解密函数一直报错。
解决办法:
前端在传递encryptedData和iv向量等时候需要进行encodeURIComponent编码