这是一个粗体这是一个斜体这是一个下划线这是一个中划线

这是一个链接:https://gitcafe.ink/

这是一个引用文本,代表引用别人的话。

我们的生活被框在了一个个熟悉的首屏 icon 里,独角兽和流量大户在行业赛道不断角逐,它们是这时代的主角

但还有这样一些,一直在坚持的个人开发者、个体户、个人创业者、小公司、小众产品,因为不够刚需、缺少推广、没有大腿可抱而不为人知,但产品足够用心、好玩好用、口碑扎实,这些给平淡生活带来一丝惊喜的人,正在通过自己独特的方式诠释、甚至影响着这个世界

Weauth 是一个用于微信登录的小程序,无需预约申请官方的登陆,直接使用小程序的方案,即可实现曲线救国的微信登录。实现原理也很简单,就是在小程序获得用户的信息之后,将其转发给第三方接入应用。我们获得小程序转发的用户信息之后,然后将其用户信息插入我自己的系统之中,从而实现用户的快速注册与登录。

  • 程序的登录和接入流程非常简单
  • 首先我们后台生成一个随机数字
  • 然后拼接成一个特殊字符串,然后向小程序的服务器发起一个请求
  • 小程序服务器收到我们请求之后验证一下没问题会返回一个二维码。
  • 在用户扫描二维码并完成授权之后,小程序服务器会向我们系统这边发起一个请求
  1. 然后将其用户信息插入
  2. 我自己的系统之中,
  3. 从而实现用户的快速注册与登录。
123
456

用户信息是一个经过编码的数组,我们首先对其进行解码,然后进行从数组中取值就可以了。

其实前面所提到的流程基本上都没问题,实际上最终的问题就是卡在最后一步,就是自动登录上面。在成功获取到用户信息之后,将其插入到系统的数据库里面的时候,让注册成功,但是在自动的时候却无法登陆,原本我以为自动登录的是代码有问题

或者说因为是 SSL 的干扰,但是经过测试,自动登录代码是没有问题的。真实原因经排查主要是 cookie 的问题[我猜的],准确的说是 cookie 的路径问题

因为在小程序服务器向系统服务器提交请求的时候,是有一个/weauth 路径的,所以我猜测,自动登录生成的 cookie 是不是在这个路径之下

而没有生成在网站的根目录。当然或许也不是这个问题,反正总之一句话就是自动登录完全没有效果,或者是因为那个被提交页面并没有经过浏览器访问,所以并没有生成对应的 cookie。

这是我目前解决这个问题的一个临时办法。就是在确定账号注册之后,进行一个 GET 跳转,使用这个跳转来实现自动登录。实际来说是用这个跳转来进行自动登录,实际上是并不是太安全的,因为 GET 的数据是直接就可以看到的。经过测试使用GET 跳转进行登陆是可以实现的,那么问题就在于如何安全的使用 GET 进行自动登陆。

测试结果

<div id="vcomments"></div>
<script>
"use strict";
function publiiLoadvaline() {
if (valine_loaded) return !1;
var e = document.getElementById("vcomments").offsetTop;
!valine_loaded && (window.scrollY || window.pageYOffset) + window.innerHeight > e && (valine_loaded = !0,
new Valine({
el: "#vcomments",
appId: "4USiY7iqwOMflOfP6u3pdJY8-9Nh9j0Va",
appKey: "dXPcl0ieDewYgnHY7Nu6tdS9",
pageSize: "20",
serverURLs: "https://lc.gitcafe.net",
placeholder: "来而不射非礼也!"
}));
}
var valine_loaded = !1;
publiiLoadvaline(), window.onscroll = function() {
publiiLoadvaline();
};
</script>

This article was updated on 九月 4, 2019 本文阅读  次

极客云落

我是云落,极客公园园长

评论