Библиотеки
Go-библиотека для интеграции OAuth
Go-библиотека для интеграции OAuth
gologin предоставляет цепочки http.Handler-ов для аутентификации через Google, GitHub, Twitter, Bitbucket, Tumblr или любых других OAuth1 и OAuth2 провайдеров.
Вместо того, чтобы вручную парсить OAuth-потоки, обрабатывать CSRF-токены и делать API-запросы за данными пользователя, вы просто подключаете готовые обработчики и получаете аутентифицированного пользователя в контексте запроса.
Быстрый старт
Интегрировать вход через GitHub занимает всего несколько строк:
import (
"github.com/dghubble/gologin/v2"
"github.com/dghubble/gologin/v2/github"
"golang.org/x/oauth2"
githubOAuth2 "golang.org/x/oauth2/github"
)
config := &oauth2.Config{
ClientID: "YourGithubClientID",
ClientSecret: "YourGithubClientSecret",
RedirectURL: "http://localhost:8080/callback",
Endpoint: githubOAuth2.Endpoint,
}
mux := http.NewServeMux()
mux.Handle("/login",
github.StateHandler(gologin.DefaultCookieConfig,
github.LoginHandler(config, nil)))
mux.Handle("/callback",
github.StateHandler(gologin.DefaultCookieConfig,
github.CallbackHandler(config, issueSession(), nil)))
Готово. Пользователь нажимает на /login, перенаправляется на GitHub, а затем на /callback с кодом авторизации.
Для веб-приложений используются LoginHandler и CallbackHandler, которые управляют редиректами.
Для мобильных приложений есть TokenHandler, который работает с токенами, передаваемыми напрямую. Twitter, например, включает специальный TokenHandler именно для таких случаев.
No comments to display
No comments to display