2015-09-21 3 views
0

Все. Простите меня, если мой вопрос не соответствует теме или тупой вопрос. Я действительно хочу знать, как реализовать механизм аутентификации, такой как GitHub для Plunker. В моем проекте. Я думаю, что у меня такая же ситуация. У меня есть несколько таких сайтов, как Plunker. , и я хочу реализовать сайт авторизации центра SSO или услуги для всех других сайтов, таких как GitHub. , когда я нажимаю кнопку Sign in with GitHub в Plunker. На веб-сайте откроются новые окна с адресом https://github.com/login?return_to=%2Flogin%2Foauth%2Fauthorize%3Fclient_id%3D7e377e5657c4d5c332db%26redirect_uri%3Dhttp%253A%252F%252Fplnkr.co%252Fauth%252Fgithub%26scope%3DgistКак работает аутентификация Plunker

Когда мне удастся войти в систему GitHub. Затем Plunker войдет в систему с аутентифицированным пользователем, которого я только что использовал в GitHub.

Моя проблема: я не знаю, как работает аутентификация между GitHub и Plunker. Не могли бы вы рассказать мне что-нибудь об этом? Он будет назначен. Благодарю.

ответ

1

Кнопка «войти в систему с GitHub» Plunker использует OAuth2, открытый стандарт для такого рода вещей. Это та же технология used by Google for their sign-in with Google functionality, а также многие другие провайдеры.

Здесь GitHub's documentation for adding "log in with OAuth" to your site.

Создание собственного поставщика OAuth - важная задача, и вы, вероятно, не хотите заниматься без взвешивания. Если вы решите пойти по этому пути, вы, скорее всего, захотите использовать существующую библиотеку для своего языка или стека выбора, например. возможно, что-то от this list. Это также хороший совет, если вы планируете строить клиент OAuth.

+0

Чтобы добавить несколько дополнительных сведений в конкретный случай Плункера, пользователь направляется на URL-адрес OAuth 2.0 через вызов 'window.open()' из браузера. Когда транзакция OAuth завершена, веб-сайт по URL-адресу обратного вызова содержит тег '

0

Как указывалось, процесс входа в систему Plunkr, по-видимому, использует OAuth2 от Github, но удается отключить его на клиенте без перенаправления/перезагрузки с помощью window.open и postMessage. Подробное описание методики можно найти here. demo code выглядит относительно безболезненно.

Проект Gatekeeper, по-видимому, является более полированной реализацией (с узлом.js) этой идеи, и есть подробное руководство по выполнению клиентской аутентификации с ним here.

Смежные вопросы