Что такое Code Сhallenge в параметре запроса на сервере авторизации, таком как IdentityServer (от JS SPA-клиент pov)? - PullRequest
0 голосов
/ 31 марта 2020

Когда я выполняю ручное перенаправление, я получаю сообщение об ошибке от IdentityServer

invalid_request, требуется вызов кода

enter image description here

Однако, когда я использую библиотеку oid c -client- js для того же запроса авторизации, я не получаю эту ошибку. Библиотека каким-то образом устанавливает код вызова под капотом.

Вот я JS код.

Настройка:

const config = {
  authority: "https://demo.identityserver.io",
  client_id: "interactive.confidential",
  redirect_uri: "http://localhost:3000/callback",
  response_type: "code",
  scope:"openid profile email api offline_access",
  post_logout_redirect_uri : "http://localhost:3000/post_logout",
};

const url = `https://demo.identityserver.io/connect/authorize?
client_id=${config.client_id}&
redirect_uri=${config.redirect_uri}&
response_type=${config.response_type}&
scope=${config.scope}`;

Моя авторизация вручную запрос перенаправления, который выдает:

const onFormSubmit = async (ev: React.FormEvent) => {
    ev.preventDefault();
    window.location.replace(url); // I simply do replace
}

Код с библиотекой, которая не выдает:

import Oidc from 'oidc-client';

const onFormSubmit = async (ev: React.FormEvent) => {
  ev.preventDefault();

  const mgr = new Oidc.UserManager(config);
  mgr.signinRedirect(); // login redirect here, no errors
}

Я хочу понять, что такое код вызова m. И как это генерируется. Дайте мне подсказку, что читать об этом.

Я имею дело с библиотекой go, но я бы предпочел не импортировать сторонние библиотеки в мое приложение, где это возможно.

1 Ответ

0 голосов
/ 31 марта 2020

Авторизовать конечную точку для обработки нескольких типов грантов, способ отправки запроса соответствует Код авторизации Грант , для которого во время запроса требуется параметр code_challenge.

Попробуйте сделать что-нибудь попроще, например:

GET /connect/authorize?
client_id=client1&
scope=openid email api1&
response_type=id_token token&
redirect_uri=https://myapp/callback&
state=abc&
nonce=xyz

Чтение Авторизация конечной точки для получения дополнительной информации.

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