UT下通过在小程序授权完成API同步注册后,向web-view发送一个带openid的H5网址
const app = getApp(); var weburl = app.globalData.weburl; var authcode = app.globalData.authcode; var util = require('../../utils/util.js') Page({ onLoad: function (options) { var that = this; var openid=wx.getStorageSync("openid"); that.setData({ url: "https://"+weburl+"?openid=" + openid }) }, onShow(){ app.data.webShowed = true; } })
同时在服务器网站根目录下conn.php中添加以下判断代码:
if(strpos($_SERVER['HTTP_USER_AGENT'],'miniProgram')!==false): if(!empty($_GET["openid"])): $_SESSION['openid']=UsualToolCMS::sqlchecks($_GET["openid"]); endif; if(isset($_SESSION['openid'])): $udata=UsualToolCMSDB::queryData("cms_users","id,username","wwpass='".$_SESSION['openid']."'","","1","0")["querydata"][0]; $_SESSION[''.$usercookname.'user']=$udata["username"]; $_SESSION[''.$usercookname.'userid']=$udata['id']; $_SESSION[''.$usercookname.'usermail']="1"; endif; endif;
通过参数来源判断(判断是否是通过小程序携带参数),以OPENID参数提取API注册的账户信息来实现自动登录,其它设备端不受此影响。
小程序便能在web-view中以H5 SESSION顺利使用用户功能。
唯一缺点:
受SESSION有效时间的影响,需在失效时在小程序重新响应携带参数的web-view,或者刷新小程序。
建议:
通过Storage保存SESSION时长,到达时长时小程序自动刷新或重新响应web-view。