社交网站的建设现状,seo管理是什么,php制作公司网站首页,网站建设公司未来发展方向需求优化点:MySQL表常用功能模块实现方案index页面home页面需求 实现一个登录功能 实现的功能 注册(邮箱注册)登录(邮箱密码)重置密码查看操作记录(登录, 注册, 重置密码, 登出. 都算操作)登出在第2版的基础上进行优化:\ 优化点: VerificationCode(验证码储存库): 增加时间字段…需求优化点:MySQL表常用功能模块实现方案index页面home页面 需求 实现一个登录功能 实现的功能 注册(邮箱注册)登录(邮箱密码)重置密码查看操作记录(登录, 注册, 重置密码, 登出. 都算操作)登出 在第2版的基础上进行优化:\ 优化点: VerificationCode(验证码储存库): 增加时间字段ExpirationTime数据类型int用于储存验证码的过期时间,增加次数字段time用于储存验证的次数,用于判断用户是否在发送验证码之后进行验证 SignInList(登录列表) 增加ExpirationTime储存过期时间,如果用户发送请求的时间超过过期时间,则视为用户掉线,需要重新登陆. 采用图片验证: 由于滑动验证过于复杂,我们采用图片验证码的形式进行真人验证 MySQL表 LoginList(注册列表) 名称数据类型id(主键)intname(唯一)stringpasswordstringEmail(唯一)string SignInList(登录列表) 名称数据类型id (主键)int身份码stringExpirationTimeint 解释:身份码为随机字符串,用于对用户操作是进行身份验证,ExpirationTime储存过期时间,如果用户发送请求的时间超过过期时间,则视为用户掉线,需要重新登陆. OperationRecord(操作列表) 名称数据类型idint操作stringtimestring VerificationCode(验证码储存库) 名称数据类型EmailstringVerificationintExpirationTimeinttimeint ExpirationTime储存验证码过期时间,如果用户验证时间超过ExpirationTime则验证无效 每次只查询最后一条匹配的数据(最新生成的验证码数据) 常用功能模块 1. 邮箱验证码功能 用户传入邮箱信息核验邮箱格式正确且未使用弹出真人验证:图片验证生成验证码(随机6位数),与Email一起存入VerificationCode(验证码储存库),同时储存验证码过期时间,次数为默认值0向用户邮箱发送验证码服务端使用用户的提交验证码时的Email去VerificationCode(验证码储存库)获取最后一条匹配的数据(最新生成的验证码数据)的过期时间,和验证码值,如果现在的时间大于过期时间,返回验证码过期,如果小于过期时间,对比传入的数据与数据库中验证码的值Verification(验证码值)是否相同,.处理用户请求每30分钟扫描一次数据库,删除超过30的数据 特殊情况: 9. 重新提交:如果验证码生成后,该用户未进行任何验证(time0),则生成相同的验证码,并告知用户,如果之前有验证失败(time0),就生成不同的验证码.避免某些用户在5分钟内没法收到验证码的情况. 身份验证功能: 为确保用户的身份与登录状态,我们使用身份验证功能来实现 用户请求(自带身份码(随机字符串)与id)使用id查找SignInList(登录列表)的对应信息(如果没有,返回未登录并退回登录页面)检查身份码与过期时间(如果身份码不正确或者已过期,返回登录过期并退回登录页面)核验成功重置过期时间(从核验成功开始30分钟后)处理用户的请求每30分钟扫描一次数据库,删除超过30的数据 密码验证功能 用户上传邮箱/账号(id)密码真人验证:图片验证密码加密查找LoginList(注册列表)中对应的邮箱/账号(如果没有返回账号/邮箱未注册)核验密码是否正确处理用户请求 储存操作信息功能 通过请求数据的id与方法确定请求操作的种类,将post操作的内容与id和请求时间一起储存在OperationRecord(操作列表)中 实现方案 index页面 /index 定义一个index页面包含两个按钮login(注册)和sign up(登录) 点击login进入注册页面,点击sign up进入登录页面 login(注册) index/login (1).邮箱验证 填写邮箱点击发送调用邮箱验证功能模块 (2)注册: 注册表单: 名称数据类型namestringpasswordstring 先验证name是否有效与是否被使用(例如:name不能超过10个字符且字符都在ASCII中) 核验password是否规范(例如:大于6位小于20位) 确认没问题后 将用户数据(注册的Email,name,password)储存到LoginList(注册列表),并自增出一个新的ID (4)调用储存操作信息功能模块 sign up(登录) index/signup 邮箱/账号密码登录 账号密码登录表单: 名称数据类型Email/idstring /intpasswordstring 调用密码验证功能模块生成身份码(随机字符串),与id一起储存在SignInList(登录列表)中,过期时间为当前时间加30分钟,(每次操作后刷新过期时间都是当前时间30分钟)返回用户身份码与id(每次访问都会自动带上)进入home页面 (5). 调用储存操作信息功能模块 验证码登录 验证码登录表单: 名称数据类型Emailstring验证码int 调用 邮箱验证码功能模块生成身份码(随机字符串),与id一起储存在SignInList(登录列表)中,过期时间为当前时间加30分钟,(每次操作后刷新过期时间都是当前时间30分钟)返回用户身份码与id(每次访问都会自动带上)进入home页面 (5). 调用储存操作信息功能模块 home页面 /home 定义三个按钮 sign out(登出),reset password(重置密码),view(查看操作记录) sign out(登出) home/signout 调用身份验证功能模块通过用户的Email,删除SignInList(登录列表)对应的数据.回到index页面 (4) 调用储存操作信息功能模块 reset password(重置密码) home/resetpassword 两个按钮:旧密码改密|验证码改密 1. 旧密码密码改密 (1).调用身份验证功能模块 旧密码改密表单: 名称数据类型passwordstringnew passwordstringnew password againstring (2). 用户填写表单信息,点击提交. (3). 调用密码验证功能模块 (4). 检验newpassword格式是否正确 (5). 检验password again密码是否相同 (6). 核验成功,服务端修改MySQL中的 LoginList(注册列表)中对应的id下的password (7). 调用储存操作信息功能模块 2. 验证码改密 (1).调用身份验证功能模块 验证码改密表单: 名称数据类型验证码int (2). 用户填写表单信息,点击提交. (3). 调用邮箱验证码功能模块 (4). 检验newpassword格式是否正确 (5). 检验password again密码是否相同 (6). 核验成功,服务端修改MySQL中的 LoginList(注册列表)中对应的id下的password (7). 调用储存操作信息功能模块 查询操作记录 调用储存操作信息功能模块 服务端查询OperationRecord(操作列表)中的所有id为用户id的数据,并返回给用户 本文由 mdnice 多平台发布