anwsion问答系统研究笔记

anwsion问答系统研究笔记

 

anwsion

/app/文件夹下是action
   所有action类都继承/system/中的基类AWS_CONTROLLER
/models/文件夹下是models
   models的基类是AWS_MODEL
/views/文件夹下是模板
框架核心代码在/system/中

工具类
helper H 在 /system/class/

常用的方法类放在 /system/functions.inc.php
 

用户登录实现
action — account/ajax/login_process/  login_process_action
model —ucenter login
model —account check_login

用户登录加密方法 $password = md5(md5($password) . $salt);

登录的过程,先检测ucenter是否登录,如果没有再检测account是否登录

用户登录后model有两个动作 update_user_last_login 和  setcookie_logout, setcookie_login

update_user_last_login用来更新最后的登录时间和最后的登录ip
 setcookie_logout 清理老的cookie  _user_login

 

然后 setcookie_login 记录登录的cookie 参数分别为 uid username password salt 过期时间
setcookie_login方法 创建cookie _user_login  值用方法 get_login_cookie_hash加密 参数分别为username password salt uid

get_login_cookie_hash的过程是 ,先加给密码加盐加密密码compile_password ($password = md5(md5($password) . $salt);),再加

密整个数组encode_hash  ,其中encode_hash用到了一个key ,解密时会用这个key解密

 

如果勾选了自动登录 则登录信息的cookie过期时间是 1年  如果没有勾选则默认保存cookie
系统自动检测cookie 若cookie存在则生成seession

记住用户名的cookie是30天

有必要的话 会记住用户名的cookie 为r_uname  30天

—-用户退出动作
执行两个动作  /app/account/main.php 的logout_action

         $this->model(‘online’)->logout(); // 在线列表退出
  $this->model(‘account’)->setcookie_logout(); // 清除 COOKIE
  $this->model(‘account’)->setsession_logout(); // 清除 Session

如果是管理员,管理员账号退出 $this->model(‘account’)->admin_logout();

 

用户注册过程研究 ,如何生成盐
——————————————–
account/ajax/register_process/ 
注册过程中
未通过检测 则system/core目录下的captcha类的方法 core_captcha::clear();  刷新注册吗

之后 model 的account  的方法user_register进行注册  ,其中user_register中 调用方法insert_user  ,insert_user 包含盐的生成

insert_user方法 ,先插入数据到users表 然后是插入users_attrib表   插入users_email_setting表  然后是更新

update_notification_setting_fields ,即插入表users_notification_setting  然后调用model search index 执行器方法push_index(

实际上就是更新users表中的字段user_name_fulltext )
如果注册成功 则清除cookie setcookie_logout(); 清除session setsession_logout();

设置setcookie_login

 

研究修改密码的过程
———————————————-

模板/account/setting/security/
action account/ajax/modify_password/  modify_password_action
更新用户数据user_edit

转载于:https://my.oschina.net/lilugirl2005/blog/116126

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/110183.html原文链接:https://javaforall.net

(0)
上一篇 2021年8月22日 下午2:00
下一篇 2021年8月22日 下午2:00


相关推荐

  • 百度文心多模态思考模型ERNIE-4.5-VL-28B-A3B-Thinking开源

    百度文心多模态思考模型ERNIE-4.5-VL-28B-A3B-Thinking开源

    2026年3月12日
    2
  • ARCGIS地图导出问题

    ARCGIS地图导出问题ARCGIS 地图导出问题问题来喽 我们如何做一幅信息齐全的地图并且将其导出呢 图 1 1 标准地图样式首先 我们需要做出一张漂亮的地图 第一步 添加数据 如图 2 1 点击布局 添加数据 将我们的数据加入到合适的布局中 图 2 1 添加数据第二步 数据的符号化显示 如图 2 2 1 打开区县界面图层属性 点击符号系统 设置值字段 NAME 点击添加所有 用不同种类的颜色表示区县地图 如图 2

    2026年3月18日
    2
  • pycharm怎么打开工具栏_pycharm菜单栏介绍

    pycharm怎么打开工具栏_pycharm菜单栏介绍  

    2022年8月26日
    9
  • SCI论文投稿信(Cover Letter)的写法及模版

    SCI论文投稿信(Cover Letter)的写法及模版一、写法投稿信(CoverLetter)应该简述所投稿件的核心内容、主要发现和意义,拟投期刊,对稿件处理有无特殊要求等(如“nottoreview”list)。另外,请附上主要作者的中文姓名、通讯地址、电话、传真和e-mail地址。此外有的杂志要求推荐几位审稿人及其联系方式。以及谁已经阅读过该文(当然是牛人)。一般来说,杂志通常要求说明你论文研究的意义,以及与这个杂志的相关性,另外还有…

    2022年5月8日
    132
  • javaee学生选课系统源码_学生选课管理系统流程图

    javaee学生选课系统源码_学生选课管理系统流程图基于javaweb的ssm学校教务管理系统(管理员,教师,学生)文章结构一、开发框架及业务方向1.开发环境2.开发框架3.整体业务二、项目结构及页面展示1.项目整体结构2.用户页面3.管理员页面***需要源码的加企鹅:671033846;备注CSDN即可******文章结构一、开发框架及业务方向1.开发环境操作系统不限:java特性,一套代码,导出运行jdk版本不限:推荐jdk1.8tomcat版本不限:推荐Tomcat8.0数据库mysql:版本不限,推荐mysql8.0以下开发工具:e

    2022年10月15日
    5
  • spring-cloud_Spring Framework

    spring-cloud_Spring FrameworkOpenFeignOpenFeign是一个声明式web服务调用服务,他使得一切web服务得以简化。我们只需要创建一个接口并用注解和JAX-RS注解的方式来配置它,即可完成对服务提供方的接口绑定。一句话:OpenFeign使得http的调用更加简洁、方便、开发者不需要再关系http调用的逻辑,将开发的中心转移到业务逻辑上来。集成OpenFeign1.pom文件添加jar <dependency><groupId&…

    2025年11月12日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号