微信小程序中用户登录和登录态维护

  • 时间:
  • 浏览:0
  • 来源:大发彩神幸运飞艇_大发神彩幸运飞艇官方

大伙今天主要来讨论一下第一种方法,即怎样使用微信账号进行登录,原因你这俩方法和微信平台结合最紧密,用户体验比较好。

【更新说明】

原因微信小守护线程池池官方对相关API的改版,一点登录这块功能流程有一点变动,然后最近再次更新了另一篇文章(附视频说明和完正示例代码),大伙可与本文同時 进行阅读参考:

这是有另一个可不都都都可以能session验证的后台服务示例,我的sessionid是上放header中传递的,一点在你这俩示例中,是从请求的header中获取sessionid:

下面大伙来逐步分解一下你这俩流程图。

该图中,“小守护线程池池”指的一点大伙使用小守护线程池池框架写的代码每段,“第三方服务器”一般一点大伙个人的后台服务守护线程池池,“微信服务器”是微信官方的API服务器。

这段后台代码成功执行的话,就可不都都都可以能得到openid和session_key。你这俩信息一点当前微信账户在微信服务器那边的登录态了。

在微信小守护线程池池中,大伙大致会涉及到以下三类登录方法:

在可不都都都可以可不都都都可以能 ,调用你这俩可不都都都可以能登录后才有权限的访问的后台服务时,你可不都都都可以能将保占据 storage中的sessionid取出并携带在请求中(可不都都都可以能上放header中携带,可不都都都可以可不都都都可以上放querystring中,或是上放body中,根据你个人的可不都都都可以能来使用),传递到后台服务,后台代码中获取到该sessionid后,从redis中查找是与非 有该sessionid占据 ,占据 的话,即确认该session是有效的,继续后续的代码执行,然后进行错误解决。

开发Web应用的可不都都都可以可不都都都可以能 ,在客户端(浏览器)中,大伙通常将session id存上放cookie中,然后小守护线程池池可不都都都可以可不都都都可以能 cookie机制,一点可不都都都可以能 采用cookie了,然后小守护线程池池有本地的storage,一点大伙可不都都都可以能使用storage来保存sessionid,以供后续的后台API调用所使用。

好了,通过微信账号进行小守护线程池池登录和情況维护的简单流程一点可不都都都可以可不都都都可以能 ,了解你这俩知识点可不都都都可以可不都都都可以能 ,再基于此进行后续的开发就会变得更容易了。

第一和第二种方法是目前Web应用中最常见的一种方法,在微信小守护线程池池中同样可不都都都可以能使用,然后可不都都都可以能值的注意的是,小守护线程池池中可不都都都可以可不都都都可以能 Cookie的机制,一点在使用这2种方法前,请确认大伙或第三方的API是与非 可不都都都可以能依赖Cookie;还有小守护线程池池中一点支持HTML页面,你这俩可不都都都可以能使用页面重定向来进行登录的第三方API就可不都都都可以能改造,或可不都都都可以能 用了。

微信小守护线程池池接口改版后的登录和会话保持流程

让用户登录,标识用户和获取用户信息,以用户为核心提供服务,是大每段小守护线程池池都是做的事情。大伙今天就来了解下在小守护线程池池中,怎样做用户登录,以及怎样去维护你这俩登录后的会话(Session)情況。

一斤代码的《微信小守护线程池池》相关教程文章

一斤代码的《从编程小白到全栈开发》系列教程文章

然后,为了安全方面的原因,请暂且直接使用你这俩信息作为你小守护线程池池的用户标识和session标识回传到小守护线程池池客户端中去,大伙应该在服务器端做一层个人的session,将你这俩微信账号登录态生成有另一个session id并维护在大伙个人的session机制中,然后把你这俩session id收集到小守护线程池池客户端作为session标识来使用。

在小守护线程池池中登录的第一步,一点先获取登录凭证。大伙可不都都都可以能使用wx.login()方法并得到有另一个登录凭证。

另外,腾讯前端团队也开源了大伙封装的相关库Wafer,可不都都都可以能借鉴和使用。

提供用户登录以及维护用户的登录情況,是有另一个拥有用户系统的软件应用普遍可不都都都可以能做的事情。像微信可不都都都可以可不都都都可以能 的有另一个社交平台,原因做有另一个小守护线程池池应用,大伙原因很少会去做有另一个完正脱离和舍弃连接用户信息的纯工具软件。

关于怎样在服务器端做你这俩session机制,大伙现在一般采用键值对存储工具来做,比如redis。大伙为每个session生成有另一个唯一的字符串作为键,然后可不都都都可以能将session_key和openid作为值,存入redis中,为了安全,存入的可不都都都可以可不都都都可以能 还应设置有另一个超时的时间。

首先,大伙使用wx.request()方法,请求大伙个人实现的有另一个后台API,并将登录凭证(code)携带过去,类似在大伙前面代码的基础上增加:

这里是我使用了Node.js Express构建的后台服务的代码,仅供参考:

大伙可不都都都可以能在小守护线程池池的App代码中发起登录凭证请求,可不都都都可以可不都都都可以在一点任何Page页面代码中发起登录凭证请求,主要根据你小守护线程池池的实际可不都都都可以能。

你的后台服务(/wx/onlogin)接着可不都都都可以能使用你这俩传递过来的登录凭证,去调用微信接口换取openid和session_key,接口地址格式如下所示:

感谢阅读我的文章,如有大问题或写错的地方请不吝留言赐教。

引用小守护线程池池官方文档的登录流程图,整个登录流程基本如下图所示: