使用小程序账号绑定我的客户端
小程序提供登录API,可以获取小程序的唯一标识(openid)。我们可以通过这个唯一标识(openid)和客户端绑定起来。
豆子碎片小程序是一款内容类小程序。它包含Golang、Rust、小程序、Web开发、数据库以及开发环境等内容的文章。现在,它已经成为一个研究学习平台以及内容查找和内容承载平台。
upart-go项目是用来上传文章到豆子碎片的一个命令行工具。它使用Golang开发。可以用来上传文章和管理文章。在使用该工具上传文章时,我们需要进行标识,是谁上传了文章?
以前,我们会提供用户注册服务,让用户使用手机号或者邮箱进行注册。然后通过手机号或邮箱来标识用户。现在,我们还可以使用小程序账号来标识用户,免去用户注册(用户也可能不想不会使用手机号或邮箱注册)。
我以upart-go项目文章上传客户端为例,介绍一下它的账号绑定原理。在用户使用小程序后,会调用登录API进行自动登录,然后后台会获取用户当前小程序的openid。当获取到用户openid后,就可以唯一标识用户。此时,我们为小程序用户提供一个识别码的功能。识别码用于开放接口,用来识别用户。它基于openid,生成icode和isecret,分别代表账号和密码。这样当用户使用icode和isecret调用开放接口时,我们就可以定位到这个用户的openid,从而定位到用户。我们的客户端可以在配置文件中配置这个icode和isecret。这样当我们调用后台服务上传文章时,我们就知道将文章划分到谁的名下?在小程序中也可以进行浏览和查看。
讲完了原理,我们开始实现功能。我们在客户端中已经实现了通过icode和isecret识别用户。但我们的客户端还可以进行优化,免去用户创建配置文件以及配置识别码。如何去做呢?
我们启动客户端后,获取客户端主机的MAC地址,标识当前的客户端,然后我们提供一个窗口展示小程序码和验证码,小程序码让用户扫描,扫描之后打开的页面会识别当前用户的openid,在打开的页面填入验证码,我们就可以完成小程序账号和客户端的绑定,是不是很棒?
如果你对这个功能感兴趣,可参考项目,地址为:
https://gitee.com/littletow/upart-go