1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-oauth2-client-js

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

OAuth2 Client

OAuth2 Client — это библиотека, которая поможет вам работать с токенами доступа и запросами OAuth2. Она предназначена только для использования в браузере (появилась из-за того, что использовалась для одностраничного приложения), поэтому включает в себя только поток OAuth2 Implicit Grant (https://tools.ietf.org/html/rfc6749#section-4.2).

Контекст / Что делает OAuth2 Client

OAuth2 Client позволяет работать с API, совместимыми с OAuth2, непосредственно из JS-приложения в браузере. Он инкапсулирует сложные части RFC, но оставляет достаточно гибкости для использования с любым JS-фреймворком.

Другие создали библиотеки JavaScript OAuth 2.0, такие как JSO (https://github.com/andreassolberg/jso), но OAuth2 Client делает меньше предположений о том, как работает ваше приложение (где нужен или используется токен, когда желательно перенаправление и т. д.). Это также упрощает работу со областями.

Задачи / Вклад

Этот проект в первую очередь ищет пользователей, но также приветствует вкладчиков. Если вы хотите помочь, вот несколько открытых задач:

— Удалить поддержку токенов обновления; — Добавить другие потоки предоставления прав, которые может использовать неконфиденциальный клиент; — Написать документацию.

Установка

NPM:

npm i --save @zalando/oauth2-client-js  

Bower:

bower install --save oauth2-client-js

Использование

«Поставщик» управляет вашими токенами и знает, как обрабатывать ответы от конечной точки авторизации. Создайте нового поставщика следующим образом:

var OAuth = require('@zalando/oauth2-client-js');
var google = new OAuth.Provider({
    id: 'google',   // required
    authorization_url: 'https://google.com/auth' // required
});

По умолчанию поставщик будет использовать localStorage для сохранения своих токенов, но с помощью storage вы можете передать всё, что соответствует Storage API.

Большую часть времени вы будете хотеть делать две вещи: запрашивать новые токены и проверять, доступны ли токены.

Запрос токенов

Чтобы получить новый токен доступа, перенаправьте пользователя на конечную точку авторизации. Полный URI строится следующим образом:

// Create a new request
var request = new OAuth.Request({
    client_id: 'my_client_id',  // required
    redirect_uri: 'http://my.server.com/auth-answer'
});

// Give it to the provider
var uri = google.requestToken(request);

// Later we need to check if the response was expected
// so save the request
google.remember(request);

// Do the redirect
window.location.href = uri;

Конечная точка авторизации перенаправит пользователя обратно на redirect_uri и закодирует свой ответ в URI фрагмента. Поскольку ваше приложение полностью потеряло своё состояние, вы можете захотеть передать metadata в запрос. Оно будет сохранено вместе с запросом и загружено позже. Например, туда можно поместить текущий маршрут вашего приложения.

Чтобы проанализировать ответ из URI, сделайте это следующим образом:

var response = google.parse(window.location.hash);

Это либо вызовет ошибку (например, если свойство state не совпадает в запросе и ответе), либо вернёт ответ. На нём будут metadata из запроса. Доступ и токены обновления теперь доступны у поставщика.

Токены обновления

Они не входят в спецификацию RFC, но вы также можете их использовать (если ваш сервер их поддерживает). Чтобы отправить запрос на обновление:

var uri = google.refreshToken();
yourHttpLibrary
    .get(uri)
    .then(function(response) {
        google.handleRefresh(response.body);
        // ваши токены теперь бриллианты
        // эм, обновлены.
    });

Получение токенов

google.getAccessToken() и...

Здесь текст обрывается, так как в нём отсутствует перевод части исходного текста. google.getRefreshToken().

License

Apache 2.0 as stated in the LICENSE.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Библиотека, которая поможет вам работать с токенами доступа и обновления OAuth2. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-oauth2-client-js.git
git@api.gitlife.ru:oschina-mirror/mirrors-oauth2-client-js.git
oschina-mirror
mirrors-oauth2-client-js
mirrors-oauth2-client-js
master