Exemplo n.º 1
0
def login():
    """Does the login via OpenID.  Has to call into `oid.try_login`
    to start the OpenID machinery.
    """
    # if we are already logged in, go back to were we came from
    if logged_in_user() is not None:
        return redirect(oid.get_next_url())
    if request.method == 'POST':
        openid = request.form.get('openid')
        if not re.findall('^https*://', openid):
            openid = 'http://' + openid
        if openid:
            pape_req = pape.Request([])
            x = oid.try_login(openid,
                              ask_for=['email', 'nickname'],
                              ask_for_optional=['fullname'],
                              extensions=[pape_req])
            return x
    form = LoginForm()
    if form.validate_on_submit():
        return redirect(oid.get_next_uril())

    msg = oid.fetch_error()
    if msg:
        flash(msg)
    elif fns_util.pu_time():
        flash('Please enter an openid')

    return render_template('login.html',
                           next=oid.get_next_url(),
                           error=oid.fetch_error(),
                           form=form,
                           version=version.__version__)
Exemplo n.º 2
0
def create_profile():
    error = ''
    if g.user is not None or 'open_id' not in session:
        return redirect(url_for('main.main_index'))
    if request.method == 'POST':
        name = request.form.get('name')
        email = request.form.get('email')
        pass1 = request.form.get('pass1')
        pass2 = request.form.get('pass2')
        if not name:
            error = 'Error: you have to provide a name'
        elif '@' not in email:
            error = 'Error: you have to enter a valid email address'
        elif not pass1:
            error = 'Please fill in password!'
        elif not pass2:
            error = 'Please confirm password!'
        elif pass2 != pass1:
            error = 'Passwords must be the same!'
        elif Users.objects(name=name).first():
            error = 'Please type another name!'
        else:
            user = Users(name=name, email=email, open_id=session['open_id'],
                  password=Users.generate_password(pass1))
            user.generate_token()
            user.save()
            return redirect(oid.get_next_url())
    return render_template('web/create_profile.html', next=oid.get_next_url(), error=error)
Exemplo n.º 3
0
Arquivo: views.py Projeto: tbarron/fns
def login():
    """Does the login via OpenID.  Has to call into `oid.try_login`
    to start the OpenID machinery.
    """
    # if we are already logged in, go back to were we came from
    if logged_in_user() is not None:
        return redirect(oid.get_next_url())
    if request.method == 'POST':
        openid = request.form.get('openid')
        if not re.findall('^https*://', openid):
            openid = 'http://' + openid
        if openid:
            pape_req = pape.Request([])
            x = oid.try_login(openid, ask_for=['email', 'nickname'],
                              ask_for_optional=['fullname'],
                              extensions=[pape_req])
            return x
    form = LoginForm()
    if form.validate_on_submit():
        return redirect(oid.get_next_uril())

    msg = oid.fetch_error()
    if msg:
        flash(msg)
    elif fns_util.pu_time():
        flash('Please enter an openid')

    return render_template('login.html',
                           next=oid.get_next_url(),
                           error=oid.fetch_error(),
                           form=form,
                           version=version.__version__)
Exemplo n.º 4
0
def create_or_login(resp):
    session['open_id'] = resp.identity_url
    user = Users.objects(open_id=resp.identity_url).first()
    if user is not None:
        g.user = user
        return redirect(oid.get_next_url())
    return redirect(url_for('main.create_profile', next=oid.get_next_url(),
                            name=resp.fullname or resp.nickname,
                            email=resp.email))
Exemplo n.º 5
0
def oid_login():
    if g.user is not None:
        return redirect(oid.get_next_url())
    if request.method == 'POST':
        openid = request.form.get('openid')
        if openid:
            return oid.try_login(openid, ask_for=['email', 'nickname'],
                                 ask_for_optional=['fullname'])
    return render_template('web/index.html', next=oid.get_next_url(),
                           error=oid.fetch_error())
Exemplo n.º 6
0
def create_or_login(resp):
    session['openid'] = resp.identity_url
    user = User.query.filter_by(openid = resp.identity_url).first()
    if user is None:
        return redirect(url_for('users.register', next = oid.get_next_url(),
                                 real_name = resp.fullname or resp.nickname,
                                 email = resp.email))  # Send new user to profile creation page

    # User successfully logged out - cache user object then redirect to wherever they came from
    g.user = user
    return redirect(oid.get_next_url())
Exemplo n.º 7
0
def login():
    if g.user is not None:
        return redirect(oid.get_next_url())

    form = LoginForm()
    if form.validate_on_submit():
        return oid.try_login(form.openid.data)
    return render_template('login.html',
                           form=form,
                           next=oid.get_next_url(),
                           error=oid.fetch_error())
Exemplo n.º 8
0
def login():
  if flask.g.user is not None:
    return flask.redirect(oid.get_next_url())
  if flask.request.method == "POST":
    openid = flask.request.form.get("openid")
    if openid:
      return oid.try_login(openid, ask_for=["email", "fullname", "nickname"])
  # Display the errors on the page using the standard flash mechanism
  error = oid.fetch_error()
  if error:
    flask.flash(error, "alert-error")
  return flask.render_template("login.html", next=oid.get_next_url())
Exemplo n.º 9
0
def create_or_login(resp):
  u = models.User.query.filter_by(openid=resp.identity_url).first()

  # If u is None, a new user needs to be created
  # Otherwise, log in the existing user
  if not u:
    data = dict(username=resp.nickname, fullname=resp.fullname, email=resp.email, openid=resp.identity_url)
    flask.session["temp_login_details"] = data
    return flask.redirect(flask.url_for("create_profile", next=oid.get_next_url()))

  flask.session["user_id"] = u.id
  flask.flash(u"Successfully logged in", "alert-success")
  return flask.redirect(oid.get_next_url())
Exemplo n.º 10
0
def create_or_login(resp):
    steam_id = long(
        resp.identity_url.replace("http://steamcommunity.com/openid/id/", ""))
    account_id = int(steam_id & 0xFFFFFFFF)
    _user = User.query.filter(User.id == int(account_id & 0xFFFFFFFF)).first()

    if not _user:
        _user = User(int(account_id & 0xFFFFFFFF),
                     steam.user.profile(steam_id).persona or account_id)

        db.session.add(_user)
        db.session.commit()

    login_attempt = login_user(_user)
    if login_attempt is True:
        flash(u"You are logged in as {}".format(_user.name), "success")
    elif not _user.is_active():
        flash(
            u"Cannot log you in as {}, your account has been disabled.  If you believe this is in error, please contact {}."
            .format(_user.name, current_app.config["CONTACT_EMAIL"]), "danger")
    else:
        flash(
            u"Error logging you in as {}, please try again later.".format(
                _user.name), "danger")
    return redirect(oid.get_next_url())
Exemplo n.º 11
0
def flickr_auth():
    # Convert the frob passed back from Flickr's auth system into an auth token.
    api_key = os.environ['PARAM1']
    api_secret = os.environ['PARAM2']
    flickr = FlickrAPI(api_key, api_secret, store_token = False)
    token = flickr.get_token(request.values['frob'])

    # Retrieve the Flickr screen name associated with the dude that just authenticated
    rsp = flickr.auth_checkToken(auth_token = token, format = 'xmlnode')
    flickr_screen_name = rsp.auth[0].user[0].attrib['username']

    user = session['tmp_flickr_user'];
    
    # Check if authenticated screen name matches screen name entered on account creation
    if flickr_screen_name.lower() == user.name.lower():
        user.flickr_auth = True
        db.session.add(user)
        db.session.commit()
        flash('You have successfully authenticated your Flickr account.  Welcome.')
        return redirect(url_for('index'))  # Send newly minted user to their Brickr landing page
    else:
        flash('Your chosen Screen Name does not match the Screen Name you logged into Flickr with!  Try this one.')
        db.session.rollback()
        return redirect(url_for('users.register', next = oid.get_next_url(),
                                do_flickr_auth = True,
                                screen_name = flickr_screen_name,
                                real_name = user.real_name,
                                email = user.email))  # Send user back to profile creation page
    return 'FAILED to Authenticate with Flickr.  FAILED.  HARD.  Call Remi.'
Exemplo n.º 12
0
Arquivo: views.py Projeto: tbarron/fns
def logout():
    fns_util.pu_time(reset=True)
    if session.pop('openid', None):
        flash(u'You have been signed out')
    else:
        flash(u'You were already signed out')
    return redirect(oid.get_next_url())
Exemplo n.º 13
0
def logout():
    if 'user_id' in session:
        session.pop('user_id')
    if 'openid' in session:
        session.pop('openid')
    flash('You were logged out')
    return redirect(oid.get_next_url())
Exemplo n.º 14
0
def create_or_login(resp):
    match = re.compile(
        "steamcommunity.com/openid/id/(.*?)$").search(resp.identity_url)
    query = api.get_player_summaries(match.group(1))
    if query["response"]["players"]:
        steamdata = query["response"]["players"][0]
    else:
        abort(404)

    player, created = Player.get_or_create(
        account_id=convert_to_32_bit(int(steamdata["steamid"])),
        defaults=steamdata)

    # update variable information if player exists
    if player:
        g.user = player
        g.user.avatar = steamdata["avatar"]
        g.user.avatarmedium = steamdata["avatarmedium"]
        g.user.avatarfull = steamdata["avatarfull"]
        g.user.personaname = steamdata["personaname"]
    else:
        g.user = created

    g.user.last_login = datetime.datetime.now()
    g.user.save()

    session["account_id"] = g.user.account_id

    tasks.get_all_matches.delay(g.user.account_id)

    flash("You are now logged in as {}".format(g.user.personaname))
    return redirect(oid.get_next_url())
Exemplo n.º 15
0
def logout():
    fns_util.pu_time(reset=True)
    if session.pop('openid', None):
        flash(u'You have been signed out')
    else:
        flash(u'You were already signed out')
    return redirect(oid.get_next_url())
Exemplo n.º 16
0
def login():
    user = g.user
    if user is not None and user.is_authenticated:
        # User must already be logged in
        return redirect(oid.get_next_url())
    form = LoginForm()
    if form.validate_on_submit():
        # Got login data from post request
        session['remember_me'] = form.remember_me.data
        return oid.try_login(form.openid.data, ask_for=['nickname', 'email'])
    # User must not be logged in yet and sent a get request to /login
    return render_template('login.html',
                           title='Sign In',
                           form=form,
                           providers=app.config['OPENID_PROVIDERS'],
                           next=oid.get_next_url(),
                           error=oid.fetch_error())
Exemplo n.º 17
0
Arquivo: views.py Projeto: tbarron/fns
def create_or_login(resp):
    """This is called when login with OpenID succeeded and it's not
    necessary to figure out if this is the users's first login or not.
    This function has to redirect otherwise the user will be presented
    with a terrible URL which we certainly don't want.
    """
    session['openid'] = resp.identity_url
    if 'pape' in resp.extensions:
        pape_resp = resp.extensions['pape']
        session['auth_time'] = pape_resp.auth_time
    user = User.query.filter_by(openid=resp.identity_url).first()
    if user is not None:
        flash(u'Successfully signed in as %s' % user.name)
        g.user = user
        return redirect(oid.get_next_url())
    return redirect(url_for('create_profile', next=oid.get_next_url(),
                            name=resp.fullname or resp.nickname,
                            email=resp.email))
Exemplo n.º 18
0
def create_or_login(resp):
    steam_id = long(
        resp.identity_url.replace("http://steamcommunity.com/openid/id/", ""))
    account_id = int(steam_id & 0xFFFFFFFF)
    _user = User.query.get(account_id)
    new_user = False

    if not _user:
        _user = User(account_id)
        new_user = True
        db.session.add(_user)
        try:
            db.session.commit()
        except IntegrityError:
            db.session.rollback()
            _user = User.query.get(account_id)

    if not _user.signed_in:
        _user.signed_in = True
        db.session.add(_user)
        db.session.commit()

    if not _user.is_active():
        flash(u"Cannot log you in, {}. You are banned.".format(_user.name),
              "danger")
        return redirect(oid.get_next_url())

    login_attempt = login_user(_user, remember=True)
    if login_attempt is True and new_user and _user.profile_url:
        flash(u"Welcome to mods.tf, {}!".format(_user.name), "success")
    elif login_attempt is True and new_user and not _user.profile_url:
        flash(
            u"Welcome to mods.tf! Unfortunately were unable to fetch your Steam user data."
            u"We will try again soon. For now you will be represented by your numerical ID, {}."
            .format(_user.name), "success")
    elif login_attempt is True and not new_user:
        flash(u"Welcome back, {}.".format(_user.name), "success")
    else:
        flash(
            u"Error logging you in as {}, please try again later.".format(
                _user.name), "danger")
    return redirect(oid.get_next_url())
Exemplo n.º 19
0
def create_or_login(resp):
    """This is called when login with OpenID succeeded and it's not
    necessary to figure out if this is the users's first login or not.
    This function has to redirect otherwise the user will be presented
    with a terrible URL which we certainly don't want.
    """
    session['openid'] = resp.identity_url
    if 'pape' in resp.extensions:
        pape_resp = resp.extensions['pape']
        session['auth_time'] = pape_resp.auth_time
    user = User.query.filter_by(openid=resp.identity_url).first()
    if user is not None:
        flash(u'Successfully signed in as %s' % user.name)
        g.user = user
        return redirect(oid.get_next_url())
    return redirect(
        url_for('create_profile',
                next=oid.get_next_url(),
                name=resp.fullname or resp.nickname,
                email=resp.email))
Exemplo n.º 20
0
def after_login(resp):
    _steam_id_re = re.compile('steamcommunity.com/openid/id/(.*?)$')

    match = _steam_id_re.search(resp.identity_url)
    g.user = User.get_or_create(match.group(1))
    steam_data = get_steam_userinfo(g.user.steam_id)
    g.user.nickname = steam_data['personaname']
    db.session.commit()
    session['user_id'] = g.user.id
    flash('You are logged in as %s' % g.user.nickname)
    return redirect(oid.get_next_url())
Exemplo n.º 21
0
def login():
    if g.user is not None and g.user.is_authenticated():
        return redirect(oid.get_next_url())
    form = LoginForm()
    if form.validate_on_submit():
        session['remember_me'] = form.remember_me.data
        return oid.try_login(form.openid.data, ask_for=['nickname', 'email'])
    return render_template('login.html',
                           title='Sign In',
                           form=form,
                           providers=app.config['OPENID_PROVIDERS'])
Exemplo n.º 22
0
def after_login(resp):
    _steam_id_re = re.compile('steamcommunity.com/openid/id/(.*?)$')

    match = _steam_id_re.search(resp.identity_url)
    g.user = User.get_or_create(match.group(1))
    steam_data = get_steam_userinfo(g.user.steam_id)
    g.user.nickname = steam_data['personaname']
    db.session.commit()
    session['user_id'] = g.user.id
    flash('You are logged in as %s' % g.user.nickname)
    return redirect(oid.get_next_url())
Exemplo n.º 23
0
def login():
    lForm = LoginForm()

    # If the page was reached by a post request from the login form
    # if request.method == 'POST' and not sForm.validate_on_submit():
    if lForm.validate_on_submit():
        session['remember_me'] = lForm.remember_me.data
        flash('You have been successfully logged in', 'success')
        return oid.try_login(lForm.openid.data, ask_for=['nickname', 'email'])

    flash('Your openID was not recognised', 'error')
    return redirect(oid.get_next_url())
Exemplo n.º 24
0
Arquivo: views.py Projeto: tbarron/fns
def create_profile():
    """If this is the user's first login, the create_or_login function
    will redirect here so that the user can set up his profile.
    """
    if g.user is not None or 'openid' not in session:
        return redirect(url_for('login'))
    if request.method == 'POST':
        name = request.form['name']
        email = request.form['email']
        if not name:
            flash(u'Error: you have to provide a name')
        elif '@' not in email:
            flash(u'Error: you have to enter a valid email address')
        else:
            flash(u'Profile successfully created')
            db.session.add(User(name, email, session['openid']))
            db.session.commit()
            return redirect(oid.get_next_url())
    return render_template('create_profile.html',
                           next_url=oid.get_next_url(),
                           version=version.__version__)
Exemplo n.º 25
0
def create_profile():
    """If this is the user's first login, the create_or_login function
    will redirect here so that the user can set up his profile.
    """
    if g.user is not None or 'openid' not in session:
        return redirect(url_for('login'))
    if request.method == 'POST':
        name = request.form['name']
        email = request.form['email']
        if not name:
            flash(u'Error: you have to provide a name')
        elif '@' not in email:
            flash(u'Error: you have to enter a valid email address')
        else:
            flash(u'Profile successfully created')
            db.session.add(User(name, email, session['openid']))
            db.session.commit()
            return redirect(oid.get_next_url())
    return render_template('create_profile.html',
                           next_url=oid.get_next_url(),
                           version=version.__version__)
Exemplo n.º 26
0
def create_or_login(resp):
    id = steam_id_re.findall(resp.identity_url)[0]

    g.user, new = User.get_or_create(steamid=id)

    profile = g.user.get_steam_profile()
    g.user.nickname = profile['personaname']
    g.user.save()

    if new:
        flash("Welcome to TF2 Club!")
        return redirect("/?onboard=1")

    return redirect(oid.get_next_url())
Exemplo n.º 27
0
def register():
    if g.user is not None or 'openid' not in session:
        return redirect(oid.get_next_url())

    # Registration form
    form = RegisterForm(request.form)
    if 'openid' in session:
        form.password.validators = []
        form.confirm.validators = []

    if form.validate_on_submit():
        # Create a user instance not yet stored in the database
        user = User(form.screen_name.data, form.email.data, form.real_name.data)
        if 'openid' in session:
            user.openid = session['openid']
        else:
            user.password = generate_password_hash(form.password.data)

        if form.flickr_auth.data:  # User selected to authorize their screen name as a flickr account
            session['tmp_flickr_user'] = user;
            api_key = os.environ['PARAM1']
            api_secret = os.environ['PARAM2']
            flickr = FlickrAPI(api_key, api_secret, store_token = False)

            login_url = flickr.web_login_url('read')
            return redirect(login_url)
        else:
            # Insert the record in our data base and commit it
            db.session.add(user)
            db.session.commit()

            # Log the user in, as he now has an ID
            session['user_id'] = user.id
    
        flash('Thank you for registering with Brickr!')
        return redirect(url_for('index'))  # Send newly minted user to their Brickr landing page
    return render_template('users/register.html', form = form, next = oid.get_next_url())
Exemplo n.º 28
0
def create_or_login(resp):
    steam_id = long(resp.identity_url.replace("http://steamcommunity.com/openid/id/", ""))
    account_id = int(steam_id & 0xFFFFFFFF)
    _user = User.query.get(account_id)
    new_user = False

    if not _user:
        _user = User(account_id)
        new_user = True
        db.session.add(_user)
        try:
            db.session.commit()
        except IntegrityError:
            db.session.rollback()
            _user = User.query.get(account_id)

    if not _user.signed_in:
        _user.signed_in = True
        db.session.add(_user)
        db.session.commit()

    if not _user.is_active():
        flash(u"Cannot log you in, {}. You are banned.".format(_user.name), "danger")
        return redirect(oid.get_next_url())

    login_attempt = login_user(_user, remember=True)
    if login_attempt is True and new_user and _user.profile_url:
        flash(u"Welcome to mods.tf, {}!".format(_user.name), "success")
    elif login_attempt is True and new_user and not _user.profile_url:
        flash(u"Welcome to mods.tf! Unfortunately were unable to fetch your Steam user data."
              u"We will try again soon. For now you will be represented by your numerical ID, {}.".format(_user.name), "success")
    elif login_attempt is True and not new_user:
        flash(u"Welcome back, {}.".format(_user.name), "success")
    else:
        flash(u"Error logging you in as {}, please try again later.".format(_user.name), "danger")
    return redirect(oid.get_next_url())
Exemplo n.º 29
0
def login():
    if g.user is not None:
        return redirect(oid.get_next_url())

    if request.method == 'POST':
        openid = request.form.get('openid_auto_url')
        if not openid:
            openid = request.form.get('openid')
        if openid:
            return oid.try_login(openid, ask_for = ['email', 'fullname', 'nickname', 'country', 'timezone', 'website'])

    # login form
    form = LoginForm(request.form)
    # make sure data is valid, but doesn't validate password is right
    if form.validate_on_submit():
        g.user = User.query.filter_by(email = form.email.data).first()
        #we use werzeug to validate user's password
        if g.user and check_password_hash(g.user.password, form.password.data):
            # the session can't be modified as it's signed, it's a safe place to store the user ID
            session['user_id'] = g.user.id
            flash('Successfully logged %s in!' % g.user.name)
            return redirect(oid.get_next_url())
        flash('Wrong email or password', 'error-message')
    return render_template('users/login.html', form = form, next = oid.get_next_url(), error = oid.fetch_error())
Exemplo n.º 30
0
def create_or_login(resp):
    _steam_id_re = re.compile("steamcommunity.com/openid/id/(.*?)$")
    match = _steam_id_re.search(resp.identity_url)
    g.user = steam.get_or_create(match.group(1))
    steamdata = steam.get_steam_userinfo(g.user.steam_id)
    g.user.username = steamdata["personaname"]
    g.user.avatar_url = steamdata["avatarfull"]
    g.user.online_status = steamdata["personastate"]
    g.user.last_online = steamdata["lastlogoff"]
    g.user.profile_url = steamdata["profileurl"]
    g.user.profile_visibility = steamdata["communityvisibilitystate"]
    db.session.add(g.user)
    db.session.commit()
    session["user_id"] = g.user.id

    return redirect(oid.get_next_url())
Exemplo n.º 31
0
def create_profile():
  if flask.g.user is not None:
    return flask.redirect(flask.url_for('index'))

  data = None
  if "temp_login_details" in flask.session:
    data = flask.session["temp_login_details"]
    flask.session.pop("temp_login_details", None)
  result = forms.create_or_update_model(models.User, None, data)
  if "success" not in result:
    return flask.render_template("forms/add_create.html", **result)

  u = result["model"]
  flask.session["user_id"] = u.id
  flask.flash(u"Welcome to the site!", "alert-success")
  return flask.redirect(oid.get_next_url())
Exemplo n.º 32
0
def create_or_login(resp):
    steam_id = long(resp.identity_url.replace("http://steamcommunity.com/openid/id/", ""))
    account_id = int(steam_id & 0xFFFFFFFF)
    _user = User.query.filter(User.id == int(account_id & 0xFFFFFFFF)).first()

    if not _user:
        _user = User(int(account_id & 0xFFFFFFFF), steam.user.profile(steam_id).persona or account_id)

        db.session.add(_user)
        db.session.commit()

    login_attempt = login_user(_user)
    if login_attempt is True:
        flash(u"You are logged in as {}".format(_user.name), "success")
    elif not _user.is_active():
        flash(u"Cannot log you in as {}, your account has been disabled.  If you believe this is in error, please contact {}.".format(_user.name, current_app.config["CONTACT_EMAIL"]), "danger")
    else:
        flash(u"Error logging you in as {}, please try again later.".format(_user.name), "danger")
    return redirect(oid.get_next_url())
Exemplo n.º 33
0
def logout():
    session.pop("user_id", None)
    return redirect(oid.get_next_url())
Exemplo n.º 34
0
def login_oid():
    if 'user_id' in session:
        return redirect(oid.get_next_url())
    return oid.try_login('https://openid.nus.edu.sg', ask_for=['email'])
Exemplo n.º 35
0
def login():
    if current_user.is_authenticated():
        return redirect(oid.get_next_url())
    return oid.try_login('http://steamcommunity.com/openid')
Exemplo n.º 36
0
def logout():
    logout_user()
    flash(u"You are now logged out.")
    return redirect(oid.get_next_url())
Exemplo n.º 37
0
def logout():
    logout_user()
    flash(u"You are now logged out.")
    return redirect(oid.get_next_url())
Exemplo n.º 38
0
def logout():
    session.pop('openid', None)
    flash(u'You were signed out')
    return redirect(oid.get_next_url())
Exemplo n.º 39
0
def login():
    if current_user.is_authenticated():
        return redirect(oid.get_next_url())
    return oid.try_login('http://steamcommunity.com/openid')
Exemplo n.º 40
0
def logout():
    logout_user()
    return redirect(oid.get_next_url())
Exemplo n.º 41
0
def route_auth_login():
    if g.user:
        return redirect(oid.get_next_url())

    return oid.try_login("http://steamcommunity.com/openid")
Exemplo n.º 42
0
def logout():
    session.pop('openid', None)
    session.pop('games', None)
    session.pop('user', None)
    session.pop('naive', None)
    return redirect(oid.get_next_url())
Exemplo n.º 43
0
def login():
    if 'user' in g:
        return redirect(oid.get_next_url())
    else:
        return oid.try_login(app.config['STEAM_API_URL'])
Exemplo n.º 44
0
def login():
    if g.user is not None:
        return redirect(oid.get_next_url())
    return oid.try_login("http://steamcommunity.com/openid")
Exemplo n.º 45
0
def logout():
    logout_user()
    return redirect(oid.get_next_url())
Exemplo n.º 46
0
def logout():
    logout_user()
    flash('You have been logged out', 'success')
    return redirect(oid.get_next_url())