예제 #1
0
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)
예제 #2
0
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
    })