def register(): if request.method == 'POST': try: name = request.form.get('name') email = request.form.get('email') password = request.form.get('password') usr = User(name=name, email=email) usr.set_password(password) usr.save() flash(flashes["registered"]) return redirect('/login') except NotUniqueError: flash(flashes["notUnique"], "error") except Exception: flash(flashes["error"]) form = RegisterForm() return render_template('authorization/register.html', form=form)
def wechat_auth(): auth_code = request.args.get('auth_code') avatar = request.args.get('avatar') nickname = request.args.get('nickname') log.debug('auth_code: %s', auth_code) wx_auth_url = API_CODE2SESSION.format( appid=current_app.config['WECHAT_APP_ID'], secret=current_app.config['WECHAT_SECRET_KEY'], jscode=auth_code) res = requests.get(wx_auth_url).json() open_id = res['openid'] log.debug('open_id: %s', open_id) try: user = User.query.filter_by(open_id=open_id).one() log.info('User<%s> already exists', open_id) except NoResultFound: log.info('User<%s> not exists, now save it', open_id) user = User.save(open_id, avatar, nickname) return jsonify({ 'status': 200, 'code': 0, 'msg': 'User has been saved', 'user_id': user.id }) except MultipleResultsFound: return jsonify({ 'status': 200, 'code': 2, 'msg': 'User has been saved multiple times' }) return jsonify({ 'status': 200, 'code': 1, 'msg': 'User already exists', 'user_id': user.id })