コード例 #1
0
def oauth_callback(provider):
    if not current_user.is_anonymous:
        return redirect(url_for('index'))

    oauth = OAuthSignIn.get_provider(provider)
    result = oauth.callback()

    if result.get('error'):
        # Need a valid email address for user identification
        return redirect(
            url_for('index',
                    error=result['error'] + ": " +
                    result['error_description']))

    app.user = User.find_or_create_by_email(result['email'])
    app.user.username = result['name']
    app.user.family_name = result['family_name']
    app.user.nickname = result['nickname']
    app.user.preferred_username = result['preferred_username']

    # Log in the user, by default remembering them for their next visit
    # unless they log out.
    login_user(app.user, remember=True)

    return redirect(result['next_page'])