Skip to main content

Библиотеки

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 именно для таких случаев.

Репозиторий либы