예제 #1
0
    def post(self, *args, **kwargs):
        rsp = {
            'stat': 'err',
            'info': '',
        }
        self.get_paras_dict()
        username = self.qdict.get('username', '')  # 用户名
        passwd = self.qdict.get('passwd', '')  # 密码
        if not username or not passwd:
            rsp['info'] = '账号和密码不能为空'
            return self.write(ujson.dumps(rsp))
        user_service = UserServices(self.db)
        status, user = user_service.check_user_login_pwd(username, passwd)

        if status:
            cookies = user_service.user_format_app(user)
            login_token = create_signed_value(
                self.application.settings["cookie_secret"], 'loginuser',
                ujson.dumps(cookies))
            rsp['stat'] = 'ok'
            rsp['data'] = {
                'login_token': login_token,
                'nick_name': user.Fnick_name,
                'photo_url': user.Fphoto_url
            }
            return self.write(ujson.dumps(rsp))
        else:
            rsp['info'] = user
            return self.write(ujson.dumps(rsp))
예제 #2
0
 def post(self):
     #login_count = self.mcache.get(self.get_client_ip+'_login_count')
     next = self.get_argument('next', '/topic')
     back_url = urlparse.urljoin(self.request.full_url(),
                                 self.get_argument('next', '/topic'))
     data = {}
     username = self.get_argument('username', '')  # 用户名
     passwd = self.get_argument('passwd', '')  # 密码
     if not username or not passwd:
         data['error'] = '账号和密码不能为空'
         self.echo('view/login/login.html', {
             'next': next,
             'data': data
         },
                   layout='')
     else:
         user_service = UserServices(self.db)
         status, user = user_service.check_user_login_pwd(username, passwd)
         if status:
             user.Flast_visit = datetime.datetime.now()
             user.Flast_visit_ip = self.get_client_ip
             user.Fvisit_times = user.Fvisit_times + 1
             cookies = user_service.user_format(user)
             self.set_secure_cookie(
                 'loginuser',
                 ujson.dumps(cookies),
                 expires_days=100 if int(
                     self.get_argument('login_forever', 0)) else 0.1,
                 httponly=True)
             self.db.add(user)
             self.db.commit()
             self.redirect(back_url)
         else:
             data['error'] = '账号或密码错误'
             self.echo('view/login/login.html', {
                 'next': next,
                 'data': data
             },
                       layout='')