PHP 网站注册登录功能的原理是什么?
程序员文章站
2022-06-11 12:15:42
...
能介绍一下吗?我想做一个网站。
评论@钟云龙 补充:
1. 邮箱验证
对于大部分使用邮箱作为 id 登录的网站,一般会发送一个验证 URL 来验证你是否是该邮件的主人(其实非必须),基本原理很简单,在用户表里加入2个字段:一个随机生成的验证码和一个验证状态。该验证码包含在邮箱发送的 URL 里。
2. OAuth
OAuth 是目前使用第三方帐号注册和登录的协议,目前最新版本为 OAuth 2.0。国内最常使用的三方帐号是微博和QQ等、国外是 Google, Facebook 等。在使用它们之前,需要向提供该帐号的提出申请,获得 appkey 和 appsecret,设置 redirect uri ,有时还需要下载相关的 SDK 等,进行一系列配置方可使用。 http://blog.xuite.net/gotrans/life/13801477-PHP+-+PHP+session+%E4%BD%BF%E7%94%A8%E5%85%A5%E9%96%80
[PHP] 使用Sessions 及Cookie 保持登入(記得我)狀態功能
會員登入的處理, PHP MySQL
https://books.google.com.hk/books?id=_afwBQAAQBAJ&pg=SA9-PA38&lpg=SA9-PA38&dq=php+%E7%99%BB%E5%85%A5+%E5%AE%89%E5%85%A8&source=bl&ots=tGhLUhmSnS&sig=G_ZNFGmMGjTD9MqAhJaaF1VnaQ8&hl=zh-TW&sa=X&ei=aIojVdWdDsPYmgXj2YCABQ&ved=0CEoQ6AEwBzgK#v=onepage&q=php%20%E7%99%BB%E5%85%A5%20%E5%AE%89%E5%85%A8&f=false
http://codepen.io/
http://denghao.me/
http://www.w3schools.com/
回复内容:
- 注册
- 状态判断:如果是已登录状态(通过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 等,进行一系列配置方可使用。 http://blog.xuite.net/gotrans/life/13801477-PHP+-+PHP+session+%E4%BD%BF%E7%94%A8%E5%85%A5%E9%96%80
[PHP] 使用Sessions 及Cookie 保持登入(記得我)狀態功能
會員登入的處理, PHP MySQL
https://books.google.com.hk/books?id=_afwBQAAQBAJ&pg=SA9-PA38&lpg=SA9-PA38&dq=php+%E7%99%BB%E5%85%A5+%E5%AE%89%E5%85%A8&source=bl&ots=tGhLUhmSnS&sig=G_ZNFGmMGjTD9MqAhJaaF1VnaQ8&hl=zh-TW&sa=X&ei=aIojVdWdDsPYmgXj2YCABQ&ved=0CEoQ6AEwBzgK#v=onepage&q=php%20%E7%99%BB%E5%85%A5%20%E5%AE%89%E5%85%A8&f=false
http://codepen.io/
http://denghao.me/
http://www.w3schools.com/