本项目为需登录的H5业务服务系统,可在PC端、移动端(包含iOS、安卓、鸿蒙)等系统原生浏览器中都正常服务。
现在进行了微信服务号的网页开发:在微信服务号上创建自定义菜单,菜单指向系统route_a然后跳转至页面page_a。
设计的逻辑是:已关注服务号的微信用户点击链接,进入route_a,判断该用户是否已经登陆系统,如果未登陆系统,那么自动跳转至系统登陆页面要求用户输入系统UID/PWD登录,系统自动在用户点击登录按钮后绑定其微信号和系统用户,那么下次该微信用户再次点击该链接,系统自动获取微信open_id进行静默登录。而如果检查到用户已经登陆了(request.session.uid)那么自动跳转至page_a(直到用户本地session超时后,再次进入则可静默登录)。
现在遇到问题:
1、iOS版微信服务号中,任意用户都可以顺利按照上述逻辑走通,这是符合预期OK的;
2、安卓版或鸿蒙版微信服务号,任意用户(包含上述在iOS版中通过的用户)点击菜单链接,即使经过了静默登录处理,且从日志确认静默登录成功(查看了session.uid,并设置了request.params['login_success']=True),但是仍被系统默认跳转到了登陆页面。然后在登录页面看到request.params['login_success']=False。
针对这样的问题,在controller中应该如何处理才能使安卓版和鸿蒙版都能像iOS版一样,即:如果检测到用户已登录,那么就能成功跳转至目标页面;如果检测到用户未登录,那么经过静默登录后也能跳转至目标页面。
请高手指点!
是否安卓和鸿蒙版本的微信客户端对菜单链接的返回值303不直接支持?
如果是这样,那么有什么方法/设置可以绕着弯实现这个303跳转吗?