2017-02-05 3 views
0

Как только пользователь отправился к провайдеру и предоставил доступ к моему веб-приложению, я получаю некоторые токены, которые храню в Postgres под этим пользователем. Как только пользователь выйдет из системы, а затем в какое-то время захочет войти в систему и нажимает «Войти в систему с помощью X», как я могу просто зарегистрировать их, чтобы не перенаправлять их на страницу «Авторизовать это приложение» еще раз?OAuth Post Authentication Re-Login

Python 3.5

Колба

Колба-OAuth

Колба-Войти

Позвольте мне знать, если у вас есть какие-либо вопросы. Cheers

ответ

0

Поиск OAuth authorize_handler. Эта функция может вернуть отображаемую HTML-страницу, чтобы показать пользователя или логическое значение, чтобы подтвердить, разрешил ли пользователь приложение. Вы можете проверить, имеет ли ваша база данных уже токен-носитель для данного клиента и пользователя и просто возвращает True, если он существует. Это модифицированная документация example от документации Flask-OAuthlib:

@app.route('/oauth/authorize', methods=['GET', 'POST']) 
@require_login 
@oauth.authorize_handler 
def authorize(*args, **kwargs): 
    if request.method == 'GET': 
     client_id = kwargs.get('client_id') 
     client = Client.query.filter_by(client_id=client_id).first() 
     # Getting user object 
     user = current_user() 
     # Getting tokens for this user and client 
     tokens = BearerToken.query.filter_by(client_id=client_id, user_id=user.id) 
     for token in tokens: 
      # Checking if requested scopes are within given token scopes 
      if set(token.scopes) >= set(kwargs['scopes']): 
       return True 
     kwargs['client'] = client 
     return render_template('oauthorize.html', **kwargs) 

    confirm = request.form.get('confirm', 'no') 
    return confirm == 'yes'