收藏
回答

(2022年5月)wx.login 接口偶尔会进入 fail 分支?

具体报错信息:

`{"errMsg":"login:fail rejected due to no permission currently"}`


场景解释:

  1. 用户进入小程序后,我们会直接调用 wx.login 来获取 code,
  2. 然后 code 发给我们自己的后端,在后端换取 open_id 和 session_key
  3. open_id 会用于唯一识别,创建一条用户记录(User model)等同于注册了一个用户账号。
  4. 然后返回 JSON Web Token(JWT) 给微信小程序,小程序会存起来,并且之后的请求中都会带上 JWT。
  5. 总结:发出去 code,收到 JWT。


简化版总结:

由于 wx.login 获取 code 这一步遇到问题,导致后续业务流程失败。


代码大概长这样:

wx.login({
    success: (res) => {},
    fail: (e) => {
      log.error(e);
      log.setFilterMsg("app.js_wx_login");
    }
})


补充说明:我们用了微信提供的实时日志功能,具体请参考:https://developers.weixin.qq.com/miniprogram/dev/framework/realtimelog/

使用方法如下(表达个大概意思,引入+使用,请参照官方文档里给的那个 log.js 就明白了):

var log = require("./utils/log.js");
log.error(e);


# 在实时日志中看到上报了如下截图的信息。

总结

  1. 当 wx.login 失败,我们用微信官方提供的"实时日志"功能,把错误上报。所以在网页后台(如上图)中看到了上述报错。


提问:

为什么 wx.login 会 fail?这里提示 no permission,那么要怎样让用户授权呢?



回答关注问题邀请回答
收藏

1 个回答

登录 后发表内容