Getting OAuth Access Tokens
Twitch APIs require access tokens to access resources. Depending on the resource you’re accessing, you’ll need a user access token or app access token. The API’s reference content identifies the type of access token you’ll need. The simple difference between the two types of tokens is that a user access token lets you access a user’s sensitive data (with their permission) and an app access token lets you access their non-sensitive data only (and doesn’t require the user’s permission).
If the APIs you’re calling require an OAuth app or user access token, use one of the following flows to get the token:
| Flow | Token Type | Description |
|---|---|---|
| Implicit grant flow | User access token | Use this flow if your app does not use a server. For example, use this flow if your app is a client-side JavaScript app or mobile app. |
| Authorization code grant flow | User access token | Use this flow if your app uses a server, can securely store a client secret, and can make server-to-server requests to the Twitch API. |
| Client credentials grant flow | App access token | Use this flow if your app uses a server, can securely store a client secret, and can make server-to-server requests to the Twitch API. This flow is meant for apps that only need an app access token. |
NOTE Third-party apps that call the Twitch APIs and maintain an OAuth session must call the /validate endpoint to verify that the access token is still valid. Read more
Implicit grant flow
This flow is meant for apps that don’t use a server, such as client-side JavaScript apps or mobile apps.
To get a user access token using the implicit grant flow, navigate the user to https://id.twitch.tv/oauth2/authorize . For example, if your service is a website, you can add an HTML hyperlink for the user to click.
<a href=»https://id.twitch.tv/oauth2/authorize?[parameters]»>Connect with Twitch</a>
Specify the following query parameters as appropriate for your application.
| Parameter | Required? | Type | Description |
|---|---|---|---|
| client_id | Yes | String | Your app’s registered client ID. |
| force_verify | No | Boolean | Set to true to force the user to re-authorize your app’s access to their resources. The default is false. |
| redirect_uri | Yes | URI | Your app’s registered redirect URI. The access token is sent to this URI. |
| response_type | Yes | String | Must be set to token . |
| scope | Yes | String | A space-delimited list of scopes. The APIs that you’re calling identify the scopes you must list. You must URL encode the list. |
| state | No | String | Although optional, you are strongly encouraged to pass a state string to help prevent Cross-Site Request Forgery (CSRF) attacks. The server returns this string to you in your redirect URI (see the state parameter in the fragment portion of the URI). If this string doesn’t match the state string that you passed, ignore the response. The state string should be randomly generated and unique for each OAuth request. |
The following URI is an example of the URI that you’ll navigate to in your web browser control (the URI is formatted for easier reading).
If the user is logged into Twitch, Twitch asks them to authorize your application’s access to the specified resources. If they’re not logged in, Twitch first asks them to log in and then asks them to authorize your application.
If the user authorizes your application by clicking Authorize, the server sends the access token to your redirect URI in the fragment portion of the URI (see the access_token parameter):
NOTE In JavaScript, you can access the fragment using document.location.hash .
If the user didn’t authorize your app, the server sends the error code and description to your redirect URI (see the error and error_description query parameters).
Authorization code grant flow
This flow is meant for apps that use a server, can securely store a client secret, and can make server-to-server requests to the Twitch API. To get a user access token using the authorization code grant flow, your app must Get the user to authorize your app and then Use the authorization code to get a token.
Get the user to authorize your app
The first step is to get the user to authorize your application’s access to their resources. To get the authorization, in your web browser control, navigate the user to https://id.twitch.tv/oauth2/authorize . For example, if your service is a website, you can add an HTML hyperlink for the user to click.
<a href=»https://id.twitch.tv/oauth2/authorize?[parameters]»>Connect with Twitch</a>
Specify the following query parameters as appropriate for your application.
| Parameter | Required? | Type | Description |
|---|---|---|---|
| client_id | Yes | String | Your app’s registered client ID. |
| force_verify | No | Boolean | Set to true to force the user to re-authorize your app’s access to their resources. The default is false. |
| redirect_uri | Yes | URI | Your app’s registered redirect URI. The authorization code is sent to this URI. |
| response_type | Yes | String | Must be set to code . |
| scope | Yes | String | A space-delimited list of scopes. The APIs that you’re calling will identify the scopes you must list. You must URL encode the list. |
| state | No | String | Although optional, you are strongly encouraged to pass a state string to help prevent Cross-Site Request Forgery (CSRF) attacks. The server returns this string to you in your redirect URI (see the state parameter in the fragment portion of the URI). If this string doesn’t match the state string that you passed, ignore the response. The state string should be randomly generated and unique for each OAuth request. |
The following URI shows an example request that you’ll navigate to in your web browser control (the URI is formatted for easier reading).
If the user is logged into Twitch, Twitch asks them to authorize your application’s access to the specified resources. If they’re not logged in, Twitch first asks them to log in and then asks them to authorize your application.
If the user authorized your app by clicking Authorize, the server sends the authorization code to your redirect URI (see the code query parameter):
If the user didn’t authorize your app, the server sends the error code and description to your redirect URI (see the error and error_description query parameters):
Use the authorization code to get a token
The second step in this flow is to use the authorization code (see above) to get an access token and refresh token.
To get the tokens, send an HTTP POST request to https://id.twitch.tv/oauth2/token . Set the following x-www-form-urlencoded parameters in the body of the POST.
| Parameter | Required? | Type | Description |
|---|---|---|---|
| client_id | Yes | String | Your app’s registered client ID. |
| client_secret | Yes | String | Your app’s registered client secret. |
| code | Yes | String | The code that the /authorize response returned in the code query parameter. |
| grant_type | Yes | String | Must be set to authorization_code . |
| redirect_uri | Yes | URI | Your app’s registered redirect URI. |
The following example shows the parameters in the body of the POST (the parameters are formatted for easier reading).
If the request succeeds, it returns an access token and refresh token.
When the access token expires, use the refresh token to get a new access token. For information about using refresh tokens, see Refreshing Access Tokens.
Client credentials grant flow
The client credentials grant flow is meant only for server-to-server API requests that use an app access token.
To get an access token, send an HTTP POST request to https://id.twitch.tv/oauth2/token . Set the following x-www-form-urlencoded parameters as appropriate for your app.
| Parameter | Required? | Type | Description |
|---|---|---|---|
| client_id | Yes | String | Your app’s registered client ID. |
| client_secret | Yes | String | Your app’s registered client secret. |
| grant_type | Yes | String | Must be set to client_credentials . |
The following example shows the parameters in the body of the POST (the parameters are formatted for easier reading).
If the request succeeds, it returns an access token.
Examples of the three flows
If you don’t want to write code to test the OAuth flows in this topic, try the following options. Before continuing, you’ll need to register an app to get a client ID and secret that you can use below. When registering your app, use http://localhost:3000 for your redirect URI.
Implicit flow example
Open your favorite browser and enter the following URI in the address bar. Substitute your client ID for the placeholder string.
If you’re not already signed in to your Twitch account, you’ll be asked to sign in. If this client ID hasn’t previously requested access to your Poll resource, you’ll be asked to give consent. If you want to always force consent, include the force_verify query parameter.
If you consented, the address bar is set to your redirect URI and it contains the access token (see access_token in the URI’s fragment).
Authorization code flow example
Open your favorite browser and enter the following URI in the address bar. Substitute your client ID for the placeholder string.
If you’re not already signed in to your Twitch account, you’ll be asked to sign in. If this client ID hasn’t previously requested access to your Poll resource, you’ll be asked to give consent. If you want to always force consent, include the force_verify query parameter.
If you consented, the address bar is set to your redirect URI and it contains the authorization code (see the code parameter).
Open a terminal window and enter the following cURL POST command (you’ll need cURL installed on your computer). Replace the placeholder strings and the authorization code with your values.
The response contains a JSON object with the access token and refresh token.
Client credentials flow example
Open a terminal window and enter the following cURL POST command (you’ll need cURL installed on your computer).
Где искать логин токен вашего Twitch профиля: решение проблемы
Twitch является одной из наиболее популярных платформ для стриминга игр. Как и в большинстве платформ, для входа в свой профиль на Twitch, необходим логин токен. Однако, многие пользователи сталкиваются с проблемой не знают, где искать логин токен своего профиля.
Что такое логин токен?
Логин токен (access token) — это ключ безопасности, который выдается пользователю для авторизации в выбранной социальной сети, приложении или сервисе. В случае Twitch, логин токен является одним из методов авторизации для доступа к вашей учетной записи на сайте.
Где искать логин токен Twitch?
Есть несколько способов, где вы можете найти логин токен вашего профиля на Twitch:
- Используйте API Twitch
Вы можете использовать API Twitch, чтобы получить ваш логин токен. Для этого вам нужно зарегистрироваться на сайте Twitch Developers и получить свой клиентский идентификатор, который вы можете использовать для запросов к API. Посетите страницу документации Twitch API для получения более подробной информации.
- Используйте Twitch Chat OAuth Password Generator
Twitch Chat OAuth Password Generator — это инструмент, который позволяет генерировать логин токены для Twitch. Для использования этого инструмента, вам нужно зайти на сайт генератора и авторизоваться на Twitch. После этого инструмент сгенерирует ваш логин токен.
- Используйте приложение для стриминга
Если вы используете приложение для стриминга на Twitch, то вы можете найти свой логин токен в настройках приложения. Чтобы найти это, зайдите в настройки вашего приложения и найдите раздел "Авторизация" или "API". В этом разделе вы найдете ваш логин токен.
Заключение
Надеемся, что этот материал помог вам разобраться, где искать логин токен вашего Twitch профиля. Независимо от того, какой метод вы выберете, имейте в виду, что логин токен является ключом безопасности, поэтому сохраните его в надежном месте и никогда не раскрывайте его третьим лицам.
Get an access token
Use the token command to get an access token. Twitch API endpoints require an app access token or a user access token (see the endpoint’s reference content for token requirements).
Prerequisites
Before getting an access token, you must configure the CLI with your application’s client ID and secret. For information, see the Configure command.
If you don’t configure the CLI before running the token command, you’re prompted to provide your application’s client ID and secret.
App access token
The following example shows how to get an app access token.
User access token
User access tokens require that the user consent to the application accessing their resources. To get consent, you must set the redirect URL to http://localhost:3000 when registering your application.
The following are the flags you use to get a user access token.
| Flag | Shorthand | Description |
|---|---|---|
| —user-token | -u | Tells the token command that you want a user access token. |
| —scopes | -s | The space-delimited list of scopes, which identify the resources that the user is giving the app permission to access. To specify multiple scopes, wrap the list in single quotes. |
This example shows how to get a user access token with the user:read:email scope set. Note that the call opens a browser to request user consent.
This example shows how to specify multiple scopes.
If you’re logged in to Twitch when you request a token, it gets your user information from your log in. Otherwise, you’re prompted for your credentials.
Revoking access tokens
To revoke an access token, use the —revoke ( -r ) flag. The flag’s parameter identifies the token to revoke.
To revoke a token that was created using a different client ID than the one that the CLI is configured with, use the —client-id flag.
Next steps
Now that you have an access token, you can use the api command to send requests to API endpoints.
Приложения и Аутентификация
Это руководство поможет разработчикам использовать Twitch Authentication, что позволяет вашему приложению выполнять действия от имени учетной записи Twitch или получать доступ к определенным данным об учетной записи пользователя. Существует несколько способов получить доступ к учетной записи Twitch от имени пользователя. Мы используем части протокола OAuth 2.0.
В дополнение к OAuth Twitch поддерживает OIDC (OpenID Connect) для более безопасного потока OAuth 2.0. Тонеры OIDC совместимы с услугами, созданными для соответствия требованиям OIDC, такими как Cognito от Amazon Web Services.
Аутентификация включает:
- 1. Зарегистрируйте свое приложение, чтобы получить идентификатор клиента и секрет клиента.
- 2. Получение токена. Это включает указание областей или разрешений, требуемых вашим приложением.
- 3. Отправка маркера в ваш запрос API для аутентификации запросов API.
Когда мы описываем этапы, мы предоставляем образцы запросов, которые будет создано вашим приложением, чтобы ваши пользователи предоставили вам доступ к их активности просмотра.
Для удобства чтения часть кода с параметризованным примером показана на нескольких строках; реальные примеры находятся на одной линии.
Образцы кода доступны на странице Get Started на веб-сайте Twitch.
Предупреждение: обрабатывайте свой токен как пароль. Например, никогда не используйте токены доступа в любом общедоступном URL-адресе и никогда не показывайте маркеры на любой веб-странице, не требуя щелчка, чтобы удалить обфускацию. Держите жетоны в секрете!
Проверка запросов
Для разработчиков, которые используют аутентификацию Twitch для целей входа в систему, токены доступа должны быть проверены на повторяющийся интервал. Если ваша служба использует Twitch в качестве формы аутентификации (чтобы убедиться, что пользователи — те, кого они говорят в своем приложении), периодическая проверка ранее выпущенных токенов OAuth гарантирует, что пользователи, которые разрешили ваше приложение, не решили отключить интеграцию.
Мы рекомендуем проверять токены доступа перед тем, как делать запросы API, которые выполняют мутации, или получают доступ к конфиденциальной информации пользователей, если прошло более одного часа с момента последней проверки.
Twitch периодически проводит аудит. Если мы обнаружим приложение, которое не повторяет проверку токенов доступа (то есть приложение, которое проверяет только для входа в систему, а не после этого), мы будем обращаться к разработчикам и работать с ними для решения проблемы. Если проблема не устранена, мы можем предпринять карательные действия, такие как аннулирование ключа API разработчика или дросселирование производительности приложения.
Валидация важна из-за того, как работают токены доступа OAuth и ожидания конечного пользователя для контроля сеанса OAuth. Например, пользователи, которые предпочитают отключать вашу интеграцию со своими учетными записями Twitch, могут сделать это из своих настроек учетной записи в Twitch. Когда пользователь отключается от интеграции, все токены OAuth между этим пользователем и эта интеграция аннулируются. В этом случае ожидается, что токены OAuth привязаны к сеансам сторонних служб; как таковые, любые существующие сеансы между отключенным пользователем и этими службами также должны быть аннулированы.
При проверке каждого из ваших запросов отправьте запрос конечной точке проверки (https://id.twitch.tv/oauth2/validate) с вашим токеном OAuth в заголовке. Если вы аутентифицированы, ответ включает статус вашего токена. Успешный ответ указывает, что ваш токен доступа действителен.
Вот пример запроса:
И вот пример ответа:
Регистрация
Чтобы создать приложение, использующее API Twitch, сначала необходимо зарегистрировать свое приложение на сайте разработчика Twitch. При создании этого приложения введите свой URI перенаправления, в котором пользователи перенаправляются после авторизации.
После создания приложения-разработчика вам присваивается идентификатор клиента. Некоторые потоки аутентификации также требуют секретности клиента, которую вы можете создать на той же странице, что и идентификатор клиента.
- Склиент ID являются общедоступными и могут быть колективными (например, встроены в источник веб-страницы).
- Секреты клиента эквивалентны паролю для вашего приложения и должны быть конфиденциальными. Никогда не выставляйте его пользователям, даже в неясной форме.
Поскольку секрет вашего клиента является конфиденциальным, мы не можем показать его вам после того, как вы покинете страницу, поэтому обязательно записывайте ее где-нибудь в безопасности. Кроме того, генерация нового секретного ключа немедленно аннулирует текущий, что может привести к сбою ваших запросов API до тех пор, пока ваше приложение не будет обновлено.
Предупреждение: Идентификаторы клиентов должны быть уникальными для каждого приложения: не используйте повторно идентификаторы клиентов в нескольких приложениях. Кроме того, приложения должны запросить соответствующий набор областей для целевых API-интерфейсов. Несоблюдение этих рекомендаций может привести к приостановке доступа вашего приложения к API Twitch.
Типы токенов
Twitch поддерживает несколько типов токенов:
Набор требований к конечному пользователю для данной авторизации. Использование токенов идентификатора OIDC (JWT) позволяет вам получить подробную информацию о вашем пользователе (например, адрес электронной почты) для конкретной авторизации. Эти данные представлены заявками в полезной нагрузке токена идентификатора.
Наша конечная точка обнаружения находится по адресу https://id.twitch.tv/oauth2/.well-known/openid-configuration. Его можно использовать со стандартными клиентами OIDC, такими как AWS Cognito.
Аутентифицируйте пользователей и разрешите вашему приложению делать запросы от их имени. Если ваше приложение использует Twitch для входа в систему или делает запросы в контексте аутентифицированного пользователя, вам необходимо создать токен доступа пользователя.
Аутентифицируйте приложение и разрешите ему доступ к ресурсам, которыми он владеет. Поскольку токены доступа приложений не связаны с пользователем, они не могут использоваться с конечными точками, требующими аутентификации пользователя.
Некоторые конечные точки Twitch API требуют проверки подлинности приложения (не аутентификации пользователя). Если ваше приложение использует эти конечные точки, вам необходимо создать токен доступа к приложениям. Точки доступа к доступу получают учетные данные клиента (а не учетные данные пользователя). Они позволяют вам делать безопасные запросы API, которые не от имени конкретного пользователя. Учетные данные клиента также могут использоваться вместо заголовков идентификаторов клиента для надежной идентификации вашего приложения.
Точки доступа к приложениям истекают примерно через 60 дней, поэтому вы должны проверить, что токен доступа к вашему приложению действителен, отправив запрос на конечную точку проверки (см. Проверка запросов). Если ваш токен истек, создайте новый.
Точки доступа к приложениям предназначены только для запросов API-интерфейсов сервер-сервер и никогда не должны включаться в код клиента.
Получение токенов
Домен, посвященный аутентификации Twitch, — https://id.twitch.tv. (Предыдущие посетители этой страницы будут замечать, что URL-адреса были обновлены, чтобы заменить https://api.twitch.tv/kraken на https://id.twitch.tv. Код, который использует старый домен kraken для проверки подлинности Twitch, будет продолжен работать до конца 2018 года, когда мы удаляем функциональность Twitch API v5. Twitch API v5 в настоящее время устарел.)
Мы поддерживаем несколько потоков аутентификации:
| Тип потока | Описание |
| Неявный поток кода | В вашем приложении не используется сервер, например клиентское приложение JavaScript или мобильное приложение. Этот подход не требует сервера, который должен делать запросы к API. |
| Кодирование кода авторизации | Ваше приложение использует сервер, может безопасно хранить секрет клиента и может выполнять запросы сервера к серверу. |
| Поток клиентских учетных данных | Вам нужен токен доступа к приложениям. |
Процедура, которую вы должны использовать для получения токенов, зависит от типов) тонов, которые вы хотите:
| Процедура | Токен доступа пользователя | ID токен | Токен доступа к приложениям |
| Неявный поток кода OIDC | |||
| Неявный поток кода OAuth | |||
| Поток кода авторизации OIDC | |||
| Поток кода авторизации OAuth | |||
| Поток учетных данных клиента OAuth |
В целях безопасности в примерах в этих разделах используется токен поддельного доступа, 0123456789abcdefghijABCDEFGHIJ .
Отправка доступа пользователей и токенов доступа к приложениям
Когда запрос API требует аутентификации, отправьте токен доступа в виде заголовка. Заголовок отличается, в зависимости от того, какой API вы используете:
В новом Twitch API:
Отмена токенов доступа
Чтобы очистить ранее полученные токены доступа, используйте конечную точку торможения токена Twitch OAuth. Его реализация соответствует стандарту OAuth.
На своем сервере отмените токен доступа, выполнив этот запрос:
Например, используя вашего ранее аутентифицированного пользователя, запрос:
Этот запрос также работает для токенов доступа к приложениям. Чтобы аннулировать токен доступа к приложениям, который мы создали ранее, сделайте этот запрос:
Как успешные запросы, так и запросы с плохими токенами возвращают 200 OK без тела. Запросы с плохими токенами возвращают один и тот же ответ, поскольку нет значимого действия, которое клиент может предпринять после отправки плохого токена.
Запрошенные неверные запросы возвращают 400 Bad Request , а также информацию о том, как исправить запрос, как правило, напоминание запрашивающего, чтобы включить client_id .
Обновление токенов доступа
Новые токены доступа OAuth2 истекают. Периоды истечения срока действия токена различаются по длине, основываясь на том, как был получен токен. Токены возвращают поле expires_in , указывающее, как долго должен продолжаться токен. Однако вы должны создавать свои приложения таким образом, чтобы они были устойчивыми к ошибкам аутентификации токена. Другими словами, приложение, способное обновлять токены, не должно знать, как долго будет действовать токен. Скорее, он должен быть готов к тому, чтобы токен стал недействительным в любое время.
Чтобы позволить приложениям оставаться аутентифицированными в течение длительного времени в мире истекающих токенов, мы разрешаем обновлять сеансы в соответствии с рекомендациями в разделе «Обновление токена доступа» в RFC OAuth2. Как правило, обновлять токены используются для продления срока службы заданной авторизации.
Выходы токена не влияют на существующие токены. В будущем мы будем отзывать постоянно живущие сессии.
(Обратите внимание, что токены доступа и токены доступа не могут быть обновлены.)
How to Refresh
Чтобы обновить токен, вам нужна пара токенов доступа / обновления, исходящая из тела. Например:
Вам также нужны client_id и client_secret , используемые для создания указанной пары токенов доступа / обновления доступа
Чтобы обновить, используйте этот запрос:
Существует несколько требуемых параметров и один необязательный параметр:
Данный сайт разрабатываеться для удобного искользовани Twitch Developer в России.