Как получить access_token от Identity Server, попадающего в конечную точку токена, передавая учетные данные от реагирующего клиента, используя fetch?

Мне нужно получить токен доступа от Identity Server через вызов API от клиента реакции (выборка). Я не хочу загружать пользовательский интерфейс для входа в систему с Identity Server (неявный поток), вводить учетные данные, перенаправлять на redirect_uri, а затем получать access_token из URL-адреса. Я просто хочу передать учетные данные через вызов API (выборку) в конечную точку токена и получить токен доступа от реагирующего клиента (аналог http://docs.identityserver.io/en/release/endpoints/token.html).

Конечная точка - http://localhost/identityserver/core/connect/token

Какие еще данные я должен передать вызову fetch?

Ниже приведены типы ответа и предоставления, поддерживаемые идентификаторами:

response_types_supported: [ "code", "token", "id_token", "id_token token", "code id_token", "code token", "code id_token token" ], grant_types_supported: [ "authorization_code", "client_credentials", "password", "refresh_token", "implicit" ],

Могу ли я узнать, как этого добиться, используя пакет oidc-client ( https://www.npmjs.com/package/oidc-client)? Пожалуйста, дайте мне знать, если нужно больше деталей, чтобы я мог обновить вопрос с большей информацией.

1 ответ

Решение

Вам нужно будет отправить сообщение в конечную точку токена, используя тип предоставления пароля:

POST / Connect/ токен

client_id=yourclientid& client_secret=yourclientsecret& grant_type= пароль и имя пользователя = имя пользователя и пароль = имя_пользователя

Это вернет токен доступа, а не идентификационный токен. Если вам нужен доступ к информации пользователя, вы можете получить ее в конечной точке UserInfo.

oidc-клиент помогает аутентифицировать пользователя через конечную точку авторизации и, следовательно, не может помочь с конечной точкой токена

Вот что говорится в документации о предоставлении пароля:

Спецификация рекомендует использовать предоставление пароля владельца ресурса только для "доверенных" (или устаревших) приложений. Вообще говоря, вам гораздо лучше использовать один из интерактивных потоков OpenID Connect, когда вы хотите аутентифицировать пользователя и запрашивать токены доступа.

Другие вопросы по тегам