登录逻辑处理问题求解?
发布于 6 年前 作者 weiwen 5471 次浏览 来自 官方Issues

目前在开发小程序,遇到一个问题,希望大家能帮忙提供下解决思路。

问题描述:

我在onLaunch中执行了以下操作:

  1. wx.getStorageSync('token');  //此token是后台接口根据openid和sessionKey生成的

  2. 若token存在,则调用wx.checkSession判断session是否失效

  3. 若session失效,则调用wx.login获取code,然后用code从后台换取新的token缓存下来

现在小程序打开的首页需要在请求头中包含这个token,后台接口才能验证通过,并返回数据,但是因为wx.checkSession、wx.login、wx.request三个接口都是异步的,所以首页的接口调用时,可能还没有拿到这个token,因为所有的接口都需要这个token,所以我想在app.js中实现获取这个token的逻辑。

请问如何保证拿到这个token之后再去调用其他接口?

3 回复

所以你们不需要用户主动去登录的吗?比如说跳转登录页之类的?   如果是需要的那么后端可以判断token是否还有效,如果失效统一返回错误码,前端在网络请求哪里统一拦截错误码,针对错误码做跳转登录逻辑(刷新登录态)

你这样通过不了审核的,亲身经历,在用户没有任何授权的情况下,拿不到登录的 code。我们的小程序之前也是跟你一样的逻辑,一进页面,马上就 wx.login,事实上是不会给你返回内容的。

建议修改下逻辑,在页面上放置一个登录按钮。另外官方好像推荐是在用户不登陆的情况下也能使用部分小程序,如果你这边不登录就不让用,很大可能也过不了审核。

一进去就要登录吗?不登录不就拿不到token了吗?也就访问不了首页  不建议这样 ,审核不好通过的

回到顶部