博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信小程序出现【需要进行身份验证】弹框解决方法
阅读量:6439 次
发布时间:2019-06-23

本文共 1113 字,大约阅读时间需要 3 分钟。

hot3.png

问题

在做微信小程序时,需要使用 Authorization 进行授权,结果每次登录的时候都出现这个弹窗。

微信小程序-需要进行身份验证

原因

部分代码如下,按说使用了 Authorization 授权时,会将用户名和密码用 进行编码然后放到 header 中传入后端代码,就像这里的 'Authorization': 'Basic V0VDSEFUOldFQ0hBVAo=',在服务端也会有固定的用户名密码,与之比较,相同则身份通过,否则不通过才会出现上述这种弹窗。

wx.request({      // .....      data: {        grant_type: 'password',        username: user.username,        password: user.password      },      header: {        'Authorization': 'Basic V0VDSEFUOldFQ0hBVAo=',        'Content-Type': 'application/x-www-form-urlencoded'      },              success: function (res) {          // ....        }});

这里的 V0VDSEFUOldFQ0hBVAo= 用 解码之后确实是 WECHAT:WECHAT,格式为:用户名:密码,也就是用户名是 WECHAT,密码也是 WECHAT。截图如下,乍看好像是解码为 WECHAT:WECHAT,但事实并不是这样的。

base64 解码

在上面文本框中输入 WECHAT:WECHAT,点击编码按钮得到 V0VDSEFUOldFQ0hBVA==,可以看到与先前的 V0VDSEFUOldFQ0hBVAo= 并不一样。无疑下面这种直接对 WECHAT:WECHAT 进行编码得到的结果肯定是正确的,那上面那种是怎么出来的呢??可以试试在上面对话框输入 WECHAT:WECHAT 并且按一下 Enter 键进行换行,再点击编码就得到了之前的那种编码值。

base64 编码

可见:使用正确的编码之后,因为用户名和密码都正确,所以就不会再出现那种要求验证身份的对话框了。

解决

使用 base64 进行编码时,要注意不要多加了换行或者空格,得到的结果都是不一样的。

出现验证身份对话框的情景总结如下:

  • 用户名和密码错误;
  • 用户名和密码正确,但是使用 base64 编码错误,常见情形:多加了换行符或者空格符。

转载于:https://my.oschina.net/dkvirus/blog/1585334

你可能感兴趣的文章
Python中四种交换两个变量的值的方法
查看>>
ora-01033:oracle initialization or shutdown in progress 解决方法
查看>>
移动自动化相关名词解释
查看>>
微信开发者工具 快捷键
查看>>
monkey测试===修改adb的默认端口
查看>>
AsyncTask和Handler处理异步消息
查看>>
Scheme 中的 pair 和 list 简述
查看>>
iOS AVAssetExportSession 视频剪切、合并、压缩
查看>>
我收藏的技术知识图(每张都是大图)
查看>>
Spring Boot制作启动图案
查看>>
《Linux内核设计与实现》读书笔记(十一)- 定时器和时间管理
查看>>
hdu Oil Deposits
查看>>
彻底理解javascript中的this指针
查看>>
SAS去空格
查看>>
Spring Cloud构建微服务架构(二)服务消费者
查看>>
这些老外的开源技术养活了一票国产软件
查看>>
Maven实战(六)--- dependencies与dependencyManagement的区别
查看>>
创业者应该有的5个正常心态(转)
查看>>
php模式设计之 注册树模式
查看>>
【Android UI设计与开发】3.引导界面(三)实现应用程序只启动一次引导界面
查看>>