欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP 网站注册登录功能的原理是什么?

程序员文章站 2022-06-11 12:15:42
...
能介绍一下吗?我想做一个网站。

回复内容:

  • 注册
    • 状态判断:如果是已登录状态(通过COOKIE验证),该页面跳转至网站首页;否则显示该注册页面。
    • 表单填写:前端页面一个Form,主要包括邮箱、密码、重复密码、验证码等。
    • 前端判断格式:通过JS正则表达式判断邮箱是否符合邮箱格式、密码是否符合一定长度和难度等。
    • 判断是否已注册:AJAX判断该邮箱是否已被注册,如果是,则提示登录;否则继续。
    • 表单提交:POST表单。
    • 后台判断格式:防止前端JS被修改或者直接POST数据,需要后台再次验证数据格式。
    • 插入数据库:在表单各数据正确无误的情况下将新用户的相关信息插入数据库(密码需加密处理,不能明文显示),并返回新用户的用户ID等相关资料。
    • 跳转到登录状态:通过用户ID等资料给用户添加COOKIE保持其登录状态。
  • 登录
    • 状态判断:如果是已登录状态,该页面跳转至网站首页;否则显示该登录页面。
    • 表单填写:前端一个Form,包括邮箱和密码。
    • 前端判断格式:判断邮箱是否符合邮箱格式、密码是否符合长度等。
    • 表单提交:POST表单。
    • 后台匹配:查找是否存在该用户;匹配该用户密码;返回是否匹配。
    • 页面跳转:匹配成功,则添加COOKIE保持登录状态;否则提示相关错误,并跳回登录状态。

评论@钟云龙 补充:
1. 邮箱验证
对于大部分使用邮箱作为 id 登录的网站,一般会发送一个验证 URL 来验证你是否是该邮件的主人(其实非必须),基本原理很简单,在用户表里加入2个字段:一个随机生成的验证码和一个验证状态。该验证码包含在邮箱发送的 URL 里。

2. OAuth
OAuth 是目前使用第三方帐号注册和登录的协议,目前最新版本为 OAuth 2.0。国内最常使用的三方帐号是微博和QQ等、国外是 Google, Facebook 等。在使用它们之前,需要向提供该帐号的提出申请,获得 appkey 和 appsecret,设置 redirect uri ,有时还需要下载相关的 SDK 等,进行一系列配置方可使用。 blog.xuite.net/gotrans/
[PHP] 使用Sessions 及Cookie 保持登入(記得我)狀態功能
會員登入的處理, PHP MySQL
books.google.com.hk/boo
http://codepen.io/
http://denghao.me/
http://www.w3schools.com/