baseauth 弹框_微信小程序出现【需要进行身份验证】弹框解决方法

问题

在做微信小程序时,需要使用 Authorization 进行授权,结果每次登录的时候都出现这个弹窗。对 Authorization 不熟悉的,可以阅读 阮一峰-理解OAuth 2.0 。

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

原因

部分代码如下,按说使用了 Authorization 授权时,会将用户名和密码用 base64 进行编码然后放到 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= 用 base64 解码之后确实是 WECHAT:WECHAT,格式为:用户名:密码,也就是用户名是 WECHAT,密码也是 WECHAT。截图如下,乍看好像是解码为 WECHAT:WECHAT,但事实并不是这样的。

base64 解码

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

base64 编码

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

解决

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

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

用户名和密码错误;

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值