h5页面在微信上登录不保存token

新手学堂023

h5页面在微信上登录不保存token,第1张

可以通过localStorage来实现。

localStorage会可以将第一次请求的数据直接存储到本地,这个相当于一个5M大小的针对于前端页面的数据库,相比于cookie可以节约带宽就可以了。

localStorage与sessionStorage的唯一一点区别就是localStorage属于永久性存储,而sessionStorage属于当会话结束的时候,sessionStorage中的键值对会被清空。

不应该在php中跳转,而应该在前端js进行跳转:

echo "<script>toplocationhref='Personal/index';</script>";

第一次写文章,希望有错能指正。

最近boss突然说要把一套web上的系统做成小程序。还好之前有过接触小程序,不过都是自己照着api和demo瞎写的,只能硬着头皮上了。

不出意外写了没多久就卡住了,原因是web页是利用cookie来保持登录信息,而小程序中并没有cookie这种东西。

一般的cookie都是浏览器生成放在Request Headers 中当做信息传给后端的,然后后端返回Set-Cookie给客户端浏览器设定之前拿到的cookie,使浏览器在cookie失效之前都拥有登陆者的信息。前端发送的cookie就像一张身份证,只要是携带了这个cookie的请求都会被认为是同一个请求源。

但是小程序中的登录请求并没有向后端发送cookie。

下图是正常浏览器端的登录请求

这是小程序中的

同一个接口cookie的差异就导致了小程序中无法使用cookie来保持登录信息。

不过好在登录请求不管前端是否发送cookie,后端都会有一个sessionId计算器(存在于使用cookie免登录的项目),请求的Response Headers中肯定会有一个Set-Cookie信息,通过responseheader['Set-Cookie']拿到Set-Cookie的整条信息后,自然就可以得到其中的SESSION了。

然后通过自带的setStorage方法存储在本地,之后想要看登录之后的各种页面只要在请求的头中加入Cookie(和web端请求登录参数名一致)参数即可。

wxsetStorage({

      key: "sessionId",

      data: sessionId

})

wxgetStorage({

      key: 'sessionId',

      success: function (response) {

            wxrequest({

                  url: '请求url',

                  method: 'GET',

                  data: {

                  },

                  header: {

                        'content-type': 'application/json',

                        'Cookie': responsedata

                  },

                  success: function (res) {

                  }

            })

      }

})

每个接口都要多传一个参数,麻烦是麻烦了一点,不过算是马马虎虎地解决了问题,之后应该还会遇到很多问题,只能边学边做了。

想记录用户登录次数就应该每次登陆的时候发送给后端,后端存进数据库记录;

要么就存本地,但是存本地应该没什么卵用,存在用户的手机上,对你来说应该没什么意义吧,而且用户删除小程序之后数据肯定也就没了

请参考微信公众号开发文档如何接入。

其次,需要将微信账号和网页账号进行关联。用户点击使用微信登录会跳到扫码微信扫码的界面,扫码其实是一个授权过程,然后会回调在微信开发者后台配置的回调地址(OAuth2授权),用户第一次使用微信登录的情况下则需要用户验证网页账号的用户名密码,验证通过后将微信的openid和unionid关联到该网页帐户,以后则根据回调用返回的openid就可以知道是哪个网页帐户了。

openid和unionid的作用与区别也参考一下微信公众号开发文档(授权登录只有服务号才有)。

设置电脑版微信一致处于所有页面最前端的步骤:

所需材料:电脑微信、手机微信。

一、首先在电脑上鼠标左键双击打开“微信”客户端。

二、打开登录界面后,点击“登录”按钮。

三、这时手机上弹出的电脑登录请求界面点击“登录”。

四、打开电脑微信后,点击右上角“图钉”图标,即可把微信窗口至于所有窗口最前面。