毕设日记:基于微信的账户登陆验证

小鸡
阅读73喜欢1·安全发表2020-02-06更新2020-02-06
前言:最近疫情严重,延迟开学,在家搞起毕设。四五天写完代码,选题实在太水了,然而没办法,已经选了也只能上了。

关于选题

当时十月底做开题报告,由于人还在西安实习,请了一天假回学校做开题报告,本以为选题是导师给的,没想到好的题目都已经被人选走了,来晚了只能现场想一个题目。当时我想了想做不做个编译器,虽然没什么创意但是可以做一个可用的支持基础语法的编译器。被导师否决了,原因是编译器没什么创新的了,本科生也做不了什么。

最后纠结了半天,导师让我做一个登录验证码的收发,刚开始是说用手机短信收发验证码,但是我想了想,手机短信是要和运营商合作的呀,感觉通过服务器发短信还挺麻烦,就算是用第三方的api,也要收费,也没保障。

后来提议用微信吧,微信联系人或者公众号进行验证码的发送,当时由于时间不够,也就把题目定下来了。

基于微信的验证码收发

用户要收到验证码总得有个窗口,虽说是通过微信来接收,但是通过微信的什么形式呢?加个机器人好友?还是关注公众号通过公众号机器人发送?这几天想了想,最终还是选用微信小程序的形式,一方面之前做些小东西比较熟悉,知道微信小程序如何获取用户标识的,所以构思了具体思路。


具体思路从上图可以清晰地看出整个流程

  1. 用户打开微信小程序后,小程序客户端先向腾讯服务器发起登录请求,获得一个临时会话code
  2. 小程序客户端拿到临时会话code后,向应用服务器发起请求。
  3. 应用服务器接收到请求,将小程序发来的临时会话code通过官方api向腾讯服务器发起请求校验用户标识。
  4. 腾讯服务器接收到code后,返回微信用户的唯一标识openid
  5. 应用服务器获取到openid后,对照本地用户用户信息表,如果存在绑定该openid的用户,生成一个有效期100秒的验证码。
  6. 用户获取到验证码后,在应用客户端填入,与账号密码信息一起发送至服务器。
  7. 服务器校验账号密码及验证码后,判断用户是否登录成功。

以上流程代码发在我的博客框架的login分支里,以及小程序端的代码也在GitHub库中

选题意义

哎,写完代码就要写论文,这个选题的意义。

这种基于地方的登录验证是一种借力的方法,站在巨人的肩膀上。因为微信的账号保护已经做的很好,很少会发生微信账户被盗的情况。微信账户的登录机制也做的很好,有基于短信登陆验证,也有异地登录保护,而且微信用户基数大,公司的公信力相对来说比较高,腾讯跑路的几率比较低。所以选择微信作为第三方的登录依赖是个不错的选择。

为什么不用微信官方的登录验证直接扫描登录?(因为那样毕设就没有代码量了),因为大部分应用还是希望有自己的账号体系,只希望借助微信来做一个登录的辅助验证,但又不过分依赖与微信。

论文该怎么写?

头大,这个选题感觉有点水,同学们的课题个个都是高大上的机器学习,人工智能,图像识别。写的论文直接术语一大堆。我这个感觉论文写起来都是白话文😓

求大佬们给给意见,也欢迎大佬们对登录验证流程提出建议一起交流,我也不是做信安的😂


随想
博客
机器学习
教程
邻家酒肆
前端
深度学习
算法
小程序
资源
cpp
html
javascript
python
sql
node
wordpress

最近文章