Как получить 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, когда вы хотите аутентифицировать пользователя и запрашивать токены доступа.