def get_or_create_weibo_user(client, code): res = client.request_access_token(code) # print "token:", str(res.access_token), "expires: ", res.expires_in token = res.access_token expires_in = res.expires_in client.set_access_token(token, expires_in) # first, try to get user from the mcache user = cache.get(str(token)) if user: print "get_or_create_weibo_user, from cache: %s %d" % (str(user), user.id) #try: # mcache_set(str(user.id), user) # return user #except DetachedInstanceError: # print "merge user ...." # user = db.session.merge(user) # mcache_set(str(user.id), user) # return user user = db.session.merge(user) print "get_or_create_weibo_user, cache db merge: %s %d" % (str(user), user.id) return user auth_id = "weibo_" + str(res.uid) user = User.query.get_by_authid(auth_id) if not user: weibo_user = client.get.users__show(uid=res.uid) print "get_or_create_weibo_user", weibo_user kw = dict() kw['auth_id'] = auth_id kw['nickname'] = kw['username'] = weibo_user.screen_name kw['avater'] = weibo_user.profile_image_url kw['gender'] = weibo_user.gender kw2 = dict() kw2['province'] = weibo_user.province kw2['city'] = weibo_user.city kw2['copper_coins'] = 5000 #print kw, kw2 user = User(**kw) profile = UserProfile(**kw2) user.profile = profile db.session.add_all([user, profile]) db.session.commit() # save user in mcache #mcache_set(str(token), user, expires_in=expires_in-int(time.time())) #mcache_set(str(user.id), user) cache.set(str(token), user, expires_in=expires_in - int(time.time())) cache.set(str(user.id), user) print "get_or_create_weibo_user, from db: %s %d. set token: %s" % ( str(user), user.id, str(token)) return user
def get_or_create_weibo_user(client, code): res = client.request_access_token(code) # print "token:", str(res.access_token), "expires: ", res.expires_in token = res.access_token expires_in = res.expires_in client.set_access_token(token, expires_in) # first, try to get user from the mcache user = cache.get(str(token)) if user: print "get_or_create_weibo_user, from cache: %s %d" % (str(user), user.id) # try: # mcache_set(str(user.id), user) # return user # except DetachedInstanceError: # print "merge user ...." # user = db.session.merge(user) # mcache_set(str(user.id), user) # return user user = db.session.merge(user) print "get_or_create_weibo_user, cache db merge: %s %d" % (str(user), user.id) return user auth_id = "weibo_" + str(res.uid) user = User.query.get_by_authid(auth_id) if not user: weibo_user = client.get.users__show(uid=res.uid) print "get_or_create_weibo_user", weibo_user kw = dict() kw["auth_id"] = auth_id kw["nickname"] = kw["username"] = weibo_user.screen_name kw["avater"] = weibo_user.profile_image_url kw["gender"] = weibo_user.gender kw2 = dict() kw2["province"] = weibo_user.province kw2["city"] = weibo_user.city kw2["copper_coins"] = 5000 # print kw, kw2 user = User(**kw) profile = UserProfile(**kw2) user.profile = profile db.session.add_all([user, profile]) db.session.commit() # save user in mcache # mcache_set(str(token), user, expires_in=expires_in-int(time.time())) # mcache_set(str(user.id), user) cache.set(str(token), user, expires_in=expires_in - int(time.time())) cache.set(str(user.id), user) print "get_or_create_weibo_user, from db: %s %d. set token: %s" % (str(user), user.id, str(token)) return user
def register(): form = UserRegForm(request.form) if request.method == 'POST' and form.validate(): user = create_user("local_%s" % form.data['name'], form.data["name"], form.data['email'], copper_coins=5000, password=form.data['password']) cache.set(str(user.id), user) if login_user(user, remember=True): return redirect(request.args.get("next") or "/") #print form.data["name"], type(form.data["name"]) return render_template("reg.html", form=form)
def register(): form = UserRegForm(request.form) if request.method == "POST" and form.validate(): user = create_user( "local_%s" % form.data["name"], form.data["name"], form.data["email"], copper_coins=5000, password=form.data["password"], ) cache.set(str(user.id), user) if login_user(user, remember=True): return redirect(request.args.get("next") or "/") # print form.data["name"], type(form.data["name"]) return render_template("reg.html", form=form)
def login(): form = LoginForm(request.form) next = request.args.get("next") if request.method == 'POST' and form.validate(): username = form.data["email"] password = form.data["password"] if '@' in username: user = User.query.filter(User.email == username).first() else: user = User.query.filter(User.username == username).first() if not user: form.email.errors.append(u'用户名或email未注册或密码不正确') return render_template("login.html", form=form, next=next) if not user.check_password(password): form.email.errors.append(u'用户名或email未注册或密码不正确') return render_template("login.html", form=form, next=next) cache.set(str(user.id), user) if not login_user(user, remember=True): form.email.errors.append(u'login failed!') return render_template("login.html", form=form, next=next) return redirect(request.args.get("next") or "/") return render_template("login.html", form=form, next=next)
def login(): form = LoginForm(request.form) next = request.args.get("next") if request.method == "POST" and form.validate(): username = form.data["email"] password = form.data["password"] if "@" in username: user = User.query.filter(User.email == username).first() else: user = User.query.filter(User.username == username).first() if not user: form.email.errors.append(u"用户名或email未注册或密码不正确") return render_template("login.html", form=form, next=next) if not user.check_password(password): form.email.errors.append(u"用户名或email未注册或密码不正确") return render_template("login.html", form=form, next=next) cache.set(str(user.id), user) if not login_user(user, remember=True): form.email.errors.append(u"login failed!") return render_template("login.html", form=form, next=next) return redirect(request.args.get("next") or "/") return render_template("login.html", form=form, next=next)