Как я могу получить экземпляр приложения, используя мой идентификатор клиента и секрет клиента в django rest framework для oauth2 - PullRequest
0 голосов
/ 19 марта 2020

Я хочу создать динамическую c систему, чтобы для каждого идентификатора клиента и секрета клиента я мог получить экземпляр приложения, которому принадлежат учетные данные (поскольку я пытаюсь создать токен доступа вручную)

def generate_access_token(request, user):
    expire_seconds = oauth2_settings.user_settings['ACCESS_TOKEN_EXPIRE_SECONDS']
    scopes = oauth2_settings.user_settings['SCOPES']
    application = Application.objects.get(name="test")
    expires = datetime.datetime.now() + timedelta(seconds=expire_seconds)
    access_token = AccessToken.objects.create(user=user, application=application,
                                              token=random_token_generator(request), expires=expires)

    token = {
        'access_token': access_token.token,
        'token_type': 'Bearer',
        'expires_in': expire_seconds,
        'scope': scopes
    }
    return token

Чтобы получить учетные данные клиента из заголовков, я делаю что-то вроде этого: -

    def get_client_credentials(request):
        try:
            client_id = request.headers.get('CLIENTID')
            client_secret = request.headers.get('CLIENTSECRET')
        except:
            raise APIException(detail="Missing Client Credentials", code=400)
        return {
            'client_id': client_id,
            'client_secret': client_secret
        }

Как я могу использовать эти учетные данные для получения имени приложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...