一、pc端网站登录

1、获取并过滤用户提交的用户名和密码以及验证码

2、验证用户提交验证码和session中的验证码是否一致

3、验证用户名是否存在

4、根据用户名获取密码,并校验密码是否一致

5、密码一致,则登录成功,跳转到对应的首页

图示:

c96a106d9c9c8f1331d68d4cdfb7e16.png

二、pc端网站注册

1、ajax获取用户要注册的用户名和手机号,并验证是否被占用,如果已经被占用,给出相应提示

2、根据生成的随机数字组合连接短信平台发送验证码

3、删除本号码下验证码缓存

4、添加本号码下验证码缓存

5、Ajax获取两次密码并进行比对,如果不一致,作出相应提示

6、验证验证码是否一致

7、如果密码一致,则执行注册,并跳转到首页,删除当前手机号验证码缓存

图示:

be023013e0b52b120e8c5ac8d2c0cfa.png

三、第三方登录(qq,微信,微博,coding.net,百度,github等)

各个第三方登录平台流程类似,这里介绍qq第三方登录

1、在qq开发者平台获取到app_id , app_key , 回调地址

2、拼接请求url

3、请求时携带state状态值,用于防范csrf攻击,回调页面会原样返回

4、处理回调,验证返回的state值和本地state值是否一致

5、如果state值一致,则再根据返回的code值获取accsess_token

6、根据accsess_token获取openid和用户资料(在第三方平台上,每一个qq号对应一个唯一的openid)

7、根据openid执行本地登录注册操作

比如(根据openid判断是否为网站新用户,如果是新用户,则执行网站内部的注册程序,并生成一个对应的uid,然后将uid写入session或cookie,实现保持会话。如果openid已经存在,则执行登录操作,直接将openid对应的uid写入session或cookie,保持会话)。

更多PHP相关知识,请访问PHP教程!

更多相关文章

  1. AWS-EC2遗失秘钥或密码如何重置密码或秘钥?
  2. centos7修改root密码
  3. 数据库密码配置项都不加密?心也太大了!
  4. 设置密码输入的默认值,以便可以读取
  5. 我正在尝试使用带有post方法的AJAX将用户名和密码发送到php文件
  6. 用于检查用户名可用性的Javascript帖子无效
  7. PHP中对用户密码进行加密
  8. php扫马、内网查mysql数据库账号密码(内网webshell渗透)
  9. 如何使用用户名作为子域名创建子域?

随机推荐

  1. android视频播放器源码分析
  2. Android(安卓)Touch事件分析
  3. WebKit For Android
  4. android常用控件(三)- ProgressBar、ListVi
  5. Android 开发学习中 各种问题收集
  6. 【Android】AndroidStudio无法创建原生模
  7. android 设置EditText只能输入大写字母,F
  8. android手机安装busybox步骤
  9. android的View的大小写字母问题
  10. Android UI开发神兵利器之Android Asset