Как мне обработать html-ответ от запроса токена oauth2? - PullRequest
0 голосов
/ 09 апреля 2019

В моем приложении angular 6 я пытаюсь отправить запрос на получение токена доступа от поставщика oauth2, называемого anilist. Я делаю это так:

    this.http.get(url, options).subscribe(result =>   
    {
      console.log('result: ', result);
    });

… где http импортируется так:

import { HttpClient } from ‘@angular/common/http';

Это приводит к ошибке:

SyntaxError: Неожиданный токен <в JSON в позиции 0 в JSON.parse </p>

Вероятно, это связано с тем, что запрос возвращает HTML-документ (скорее всего, страницу входа в систему), и он, очевидно, не может проанализировать его как json.

Но тогда мой вопрос: как отправить запрос на токен oauth2 и обработать ответ как HTML-страницу?

Спасибо.

1 Ответ

0 голосов
/ 09 апреля 2019

Немного странно, что вы хотите получить токен доступа через http get.Может быть в этом проблема, ты говоришь об этом сайте?https://anilist.co/

https://anilist.gitbook.io/anilist-apiv2-docs/overview/oauth/authorization-code-grant

  1. Пользователь переходит на свой сайт по вашей ссылке для входа oAuth2
  2. Он входит в систему, добавляет грант, затем браузер перенаправляет наURL вашего обратного вызова
  3. Вы изменяете свой код авторизации для доступа к токену через HTTP-запрос.https://anilist.gitbook.io/anilist-apiv2-docs/overview/oauth/authorization-code-grant#converting-authorization-codes-to-access-tokens

Я думаю, что вы получите html-ответ, потому что

  • Вы пытаетесь получить токен доступа через http get - и здесь вы получаете неподдерживаемый метод / 404 / etcошибка
  • Или вы пытаетесь получить свой токен доступа со страницы входа в anilist (anilist.co/api/v2/oauth/authorize) вместо конечной точки токена (anilist.co/api/v2/oauth/токен)

Обновление

Это тот же самый случай, если вы используете неявное предоставление (потому что вы сказали, что создаете угловое приложение, которое может быть SPA - поэтому общедоступнымклиент, но в этом случае токен доступа предоставляется в ответе) https://anilist.gitbook.io/anilist-apiv2-docs/overview/oauth/implicit-grant

...