51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
#!/usr/bin/env python
|
|
#-*- coding: utf-8 -*-
|
|
|
|
import tornado.web
|
|
from tornado.escape import json_encode
|
|
from utils import encrypt
|
|
from handlers.admin import BaseHandler
|
|
from model.admin import Admin as User
|
|
|
|
|
|
class AdminLoginHandler(BaseHandler):
|
|
|
|
error_message = {
|
|
'110': '填写信息不完整',
|
|
'121': '该用户不存在',
|
|
'122': '密码错误'
|
|
}
|
|
|
|
def get(self):
|
|
self.render('admin/login.html', error=None, email='')
|
|
|
|
def post(self):
|
|
username = self.get_argument('username', '')
|
|
password = self.get_argument('password', '')
|
|
|
|
self.set_header("Content-Type", "application/json")
|
|
|
|
if not (username and password):
|
|
ret = {'error': 110, 'msg': self.error_message['110'], 'url': '/admin/index'}
|
|
return self.write(json_encode(ret))
|
|
|
|
user = User.get_by_username(username)
|
|
if not user:
|
|
ret = {'error': 121, 'msg': self.error_message['121']}
|
|
return self.write(json_encode(ret))
|
|
|
|
if user.get_password() != encrypt(password):
|
|
ret = {'error': 122, 'msg': self.error_message['122']}
|
|
return self.write(json_encode(ret))
|
|
|
|
self.set_secure_cookie("admin_user_id", str(user.user_id), expires_days=7)
|
|
ret = {'error': 0, 'msg': '登录成功', 'url': '/admin/index'}
|
|
return self.write(json_encode(ret))
|
|
|
|
|
|
class AdminLogoutHandler(tornado.web.RequestHandler):
|
|
|
|
def get(self):
|
|
self.clear_cookie('admin_user_id')
|
|
self.redirect('/admin/login')
|