xuyuan 2019-03-19 11:54:59 5196次浏览 1条评论 1 2 0

实现背景:

众所周知,第三方授权登录,极大的方便了用户注册网站,微博、QQ、GitHub等都提供授权接口,微信的方便及广泛应用使得各大平台也基本都提供微信扫码方便登录,但是个人网站却用这个。微信网站登录功能需前往微信开方平台申请网站应用才可以用,个人网站是无法申请的。那有没有办法呢,微信公众号刚出来时,有想到过使用它,但是个人只能申请订阅号,且不能认证,而且接入开发者模式后,不认证的话连菜单也没有了,现在订阅号被隐藏的较深,也不方便使用。而微信小程序的出现就解决了这些问题,小程序开发方便,功能强大,对个人开发者更开放,新版微信将小程序入口暴露的也更方便打开了。

实现方式:

微信是提供的登录方式有:网站登录、APP登录、公众号登录,每种登录方式都需应用发起微信授权申请,但网站登录相较而言有所差别,用户所打开的网页和用户使用的微信是分开的,用户打开登录网页时,网页内嵌的二维码与微信建立连接关系,授权时用户扫码获取二维码内容将其提交至微信服务端,微信服务端便能识别是那个用户和那个网站,完成授权后将使网页跳转到网站应用设置的的登录回调地址,回调地址会接到授权码,借此可向微信服务端拉取用户信息。

怎么用小程序实现呢?其它能借助的就是小程序的登录功能及扫码功能,登录使得应用获取用户信息,扫码使得获取网页信息。小程序的登录有点不一样,需要两个登录态,一个是小程序和微信间的,另一个是小程序和个人网站服务端的。小程序登录成功后会获取一个授权码,此时第一个登录态就产生,它的有效期是由微信维护,每次登录和前一次也有可能是一样的,后台取得授权码后即可获取第一个登录态,此时后台需生成一个自身与小程序之间的登录态以维持与小程序以后的联系,至于用户信息,即可在登录后由小程序获取。再说一下扫码登录,打开网站登录页时,后台可生成hash值记录于后台,并将其生成一张二维码发往前台,登录了的小程序扫码获得此值,即可通知用户授权,发送请求至网站服务端,服务端即可识别用户和来源网页操作网站登录了。

实例应用:

方便大家体验,也给自已网站打个广告,^@^,同样是技术类网站(构建于yii2.0),大家一起交流学习

网站『终成倦鼠』: https://www.yuan37.com

截图看下

yii-login.png

yuan37_pc_index.png

yuan37_pc_theme.png

最后

上面所述有不当之处还望各位指正,大家有什么问题也可以网站留言,看到会回复。也可就在此留言。

觉得很赞
您需要登录后才可以评论。登录 | 立即注册