Django电商网站--第三方扫码登录

在当前电商网站中,往往引用第三方软件(例如微信、qq、微博)扫码登录的功能,免除输入用户名密码的繁琐,也能在用户忘记密码的时候,提供一种便捷的登录方式。本文以QQ登录为例,简述如何在电商网站中引用此功能。
第三方扫码登录遵循oauth2.0方案,以 code-->access\_token-->openid 的获取为主线。
首先在QQ开发平台中完成注册和申请,获取QQ\_CLIENT\_ID、QQ\_CLIENT\_SECRET,QQ\_REDIRECT\_URI 等信息。
在商城服务端新建oauth的应用;新建数据模型,将用户的ID同qq的openid关联在一个表中;
前期工作准备完成之后,即开始code-->access\_token-->openid的工作主线,如下图所示
Django电商网站--第三方扫码登录_第1张图片
在获取openID之后,服务端首先校验该用户是否已有openID,如果已有,即重定向至首页,完成登录;如果没有,则重定向至绑定界面,同时将openID渲染至该页面。在绑定页面 让用户输入手机号、密码、短信验证码,联同openid发送至服务端,服务端校验手机号密码是否合规及短信验证码是否正确。
之后,服务端通过手机号校验该用户是否存在,如果存在则验证密码,验证成功之后,重定向至首页。如果不存在,则创建新用户。
最后,无论是否注册过的用户,均统一操作绑定openid,并将其openid添加到oauth数据库表中,然后保持其登录状态,重定向至首页,cookie中写入用户名,响应结果。

你可能感兴趣的:(pythondjango)