07-03 04 用户登录退出
有了后台框架的小程序后台,此时在登录页面随便输入用户名和密码进行登录会有如下显示:
上面显示的原因是我们需要给user写入login的视图函数, 响应登录请求.
给用户数据库增加一个用户
现在数据库没有用户,不方便进行登录测试开发,所以为数据库增加一个用户.
增加用户的命令如下:
# 请将下面的SQL语句执行,然后默认登录账号是54php.cn 密码是123456 INSERT INTO `user` (`uid`, `nickname`, `mobile`, `email`, `sex`, `avatar`, `login_name`, `login_pwd`, `login_salt`, `status`, `updated_time`, `created_time`) VALUES (1, '哎哎哎www.54php.cn', '11012345679', 'apanly@163.com', 1, '', '54php.cn', '816440c40b7a9d55ff9eb7b20760862c', 'cF3JfH5FJfQ8B2Ba', 1, '2017-03-15 14:08:48', '2017-03-15 14:08:48');
实操结果
C:\Users\小梁总>mysql -uroot -p Enter password: **** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.6.42 MySQL Community Server (GPL) Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | dbutiles | | food_db | | mydb1 | | mydb2 | | mydb57 | | mysite | | mysql | | orm_home | | orm_practice | | performance_schema | | test | +--------------------+ 12 rows in set (0.03 sec) mysql> use food_db; Database changed mysql> show tables; +-------------------+ | Tables_in_food_db | +-------------------+ | user | +-------------------+ 1 row in set (0.00 sec) mysql> select * from user; Empty set (0.00 sec) mysql> INSERT INTO `user` (`uid`, `nickname`, `mobile`, `email`, `sex`, `avatar`, `login_name`, `login_pwd`, `login_salt`, `status`, `updated_time`, `created_time`)VALUES(1, '哎哎哎www.54php.cn', '11012345679', 'apanly@163.com', 1, '', '54php.cn', '816440c40b7a9d55ff9eb7b20760862c', 'cF3JfH5FJfQ8B2Ba', 1, '2017-03-15 14:08:48', '2017-03-15 14:08:48'); Query OK, 1 row affected (0.03 sec) mysql> select * from user\G *************************** 1. row *************************** uid: 1 nickname: 哎哎哎www.54php.cn mobile: 11012345679 email: apanly@163.com sex: 1 avatar: login_name: 54php.cn login_pwd: 816440c40b7a9d55ff9eb7b20760862c login_salt: cF3JfH5FJfQ8B2Ba status: 1 updated_time: 2017-03-15 14:08:48 created_time: 2017-03-15 14:08:48 1 row in set (0.00 sec)
登录功能开发
登录功能开发涉及如下文件:
- order_V200722\web\controllers\user\User.py # 视图函数文件
- order_V200722\common\libs\user\UserService.py # user自定义通用方法,例如加密
- order_V200722\web\templates\user\login.html # 前端登录html
- order_V200722\web\static\js\user\login.js # 优化前端登录页面体验
登录效果改进 Ajax
web/templates/user/login.html需要更改
web/static/js/user/login.js需要增加
web/static/js/user/common.js需要更改
登录拦截
已经登录过存有cookie的用户可以访问,没有登录过没有cookie的用户被拦截
web/interceptors/AuthInterceptor.py被增加
www.py文件增加错误拦截包