def route_profile(request): headers = { 'Content-Type': 'text/html', } session_id = request.cookies.get('session_id', None) s = Session.find_by(session_id=session_id) if s is None: header = 'HTTP/1.x 302 Moved Temporarily\r\nLocation:http://127.0.0.1:3000/login\r\n' header += ''.join([ '{}: {}\r\n'.format(k, v) for k, v in headers.items() ]) body = '' r = '{}\r\n{}'.format(header, body) log('login 的响应', r) return r.encode() else: s = User.find_by(username=s.username) body = route_template('profile.html') body = body.replace('{{id}}', str(s.id)) body = body.replace('{{username}}', s.username) body = body.replace('{{note}}', s.note) header = formatted_with_headers(headers) r = '{}\r\n{}'.format(header, body) log('login 的响应', r) return r.encode()
def current_user(request): # cookie 版本 # username = request.cookies.get('user', '【游客】') # session 版本 session_id = request.cookies.get('session_id', None) s = Session.find_by(session_id=session_id) if s is None: return '【游客】' else: return s.username
def current_user(request): session_id = request.cookies.get('session_id', '') if session_id is not None: s = Session.find_by(session_id=session_id) if s is None or s.expired(): return User.guest() else: user_id = s.user_id u = User.find_by(id=user_id) return u return User.guest()
def current_user(request): if 'session_id' in request.cookies: session_id = request.cookies['session_id'] s = Session.find_by(session_id=session_id) if s is None or s.expired(): return User.guest() else: user_id = s.user_id u = User.find_by(id=user_id) return u else: return User.guest()
def current_user(request): # username = request.cookies.get('user', User.guest()) log('这是cookie', request.cookies) session_id = request.cookies.get('session_id', '') log('这是session_id', session_id) s = Session.find_by(session_id='{}'.format(session_id)) # username = Session.find_by(session_id='{}'.format(session_id)).get(session_id, User.guest()) log('这是查找到的s', s) if s: return s.username else: return User.guest()
def all(request): """ 返回当前用户所有 Todo,若是登录用户则根据 user_id 返回,否则根据 session_id 返回 """ session_id = request.query.get('sid') s = Session.find_by(session_id=session_id) if s is not None: user_id = s.user_id todos = Todo.find_all_json(user_id=user_id) else: todos = Todo.find_all_json(session_id=session_id) return json_response(todos)
def current_user(request): session_id = request.cookies.get('session_id') if session_id is not None: s = Session.find_by(session_id=session_id) now = time.time() if s.expired_time > now: u = User.find_by(id=s.user_id) log('current user 1', u) return u else: return User.guest() else: return User.guest()
def find_user(request): """ 查找当前用户的用户名 """ session = request.query.get('sid') s = Session.find_by(session_id=session) if s.session_id == s.user_id: username = "******" else: user_id = s.user_id user = User.find(user_id) username = user.username return json_response(username)
def current_user(request): session_id = request.cookies.get('session_id') if session_id is not None: s = Session.find_by(session_id=session_id) if s is not None: if not s.expired(): user_id = s.user_id log('current user id <{}>'.format(user_id)) u = User.find_by(id=user_id) return u else: return User.guest() else: return User.guest() else: return User.guest()
def login(request): if 'session_id' in request.cookies: session_id = request.cookies['session_id'] s = Session.find_by(session_id=session_id) if s is not None: s.delete(s.id) form = request.form() u, result = User.login(form) log('login post', result) if u is None: headers = None return redirect('/user/login/view?result={}'.format(result), headers) else: s = Session.make(u.id) headers = {'Set-Cookie': 'session_id={}; path=/'.format(s.session_id)} return redirect('/', headers)
def new(cls, form): """ 新增 Todo """ # apiTodoAdd 传过来的 form 中 cookie 是 { cookie : sid=adsfwerqwedas } 形式的 session_id = form.get('cookie', None).split('=')[1] # 查询 session 是否有相应的用户,有的话设置成相应的 user_id s = Session.find_by(session_id=session_id) if s is not None: user_id = s.user_id form['user_id'] = user_id m = super().new(form) m.session_id = session_id t = int(time.time()) m.created_time = t m.updated_time = t m.save() return m
def route_profile(request): headers = { 'Content-Type': 'text/html', } session_id = request.cookies.get('session_id', None) s = Session.find_by(session_id=session_id) if s is None: header = 'HTTP/1.x 302 redirect\r\nLocation:/login\r\n' header += ''.join( ['{}: {}\r\n'.format(k, v) for k, v in headers.items()]) r = '{}\r\n'.format(header) return r.encode() else: headers = 'HTTP/1.x 210 VERY OK\r\nContent-Type: text/html\r\n' body = template('profile.html') username = s.username u = User.find_by(username=username) id = u.id note = u.note body = body.replace('{{username}}', username) body = body.replace('{{id}}', str(id)) body = body.replace('{{note}}', note) r = headers + '\r\n' + body return r.encode()