H5小程序使用Session保存登录状态的方案

2021-04-03 22:33:24
黄豆 UsualTool.com
编程思维/PHP 5128
loading

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。

+分享给朋友+
郑重提醒:部分素材来源于互联网,如果侵犯了您的权利,请及时联络我们更正,谢谢合作,电邮:usualtool@qq.com