anwsion问答系统研究笔记

 

anwsion php

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

工具类
helper H 在 /system/class/ 数组

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

用户登陆实现
action --- account/ajax/login_process/  login_process_action
model ---ucenter login
model ---account check_login session

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

登陆的过程,先检测ucenter是否登陆,若是没有再检测account是否登陆 框架

用户登陆后model有两个动做 update_user_last_login 和  setcookie_logout, setcookie_login 工具

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

 

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

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

相关文章
相关标签/搜索