awesome-repositories.com
Blog
awesome-repositories.com

Descubre los mejores repositorios open-source con nuestra búsqueda potenciada por IA.

ExplorarBúsquedas curadasAlternativas open-sourceSoftware autohospedableBlogMapa del sitio
ProyectoAcerca deCómo clasificamosPrensaServidor MCP
Aviso legalPrivacidadTérminos
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
markbates avatar

markbates/goth

0
View on GitHub↗
6,456 estrellas·628 forks·Go·mit·2 vistasblog.gobuffalo.io/goth-needs-a-new-maintainer-626cd47ca37b↗

Goth

Goth is a Go library that provides a consistent, provider-agnostic interface for authenticating users through dozens of third-party OAuth and OAuth2 services. It defines a pluggable provider interface and a central registry where providers are registered by name, enabling dynamic lookup and invocation during authentication flows. The library manages the multi-step OAuth authorization process by generating redirect URLs and validating callback responses, and returns a standardized user profile with common fields like email, name, and avatar URL across all supported providers.

The library distinguishes itself through its extensible architecture, allowing developers to implement a custom provider interface to add authentication support for any third-party OAuth service not included by default. It handles session state management between requests using encrypted cookies with configurable security attributes, including HTTP-only, secure, and domain-scoped settings. Goth also supports token refresh, enabling applications to obtain new access tokens using refresh tokens when the original token expires.

The project provides runtime provider registry management, allowing developers to add, retrieve, and clear authentication providers dynamically. Session storage can be customized with settings such as expiry, path, and security flags for production use. The library is distributed as a Go package with documentation covering installation and provider configuration.

Features

  • Authentication Provider Architectures - An extensible system where new authentication providers can be added by implementing a simple interface without modifying core logic.
  • OAuth Provider Registrations - Providers are registered by name into a central store, enabling dynamic lookup and invocation during authentication flows.
  • Provider Registries - Add, retrieve, and clear authentication providers at runtime for flexible provider management.
  • Custom Authentication Providers - Implement a Provider interface to add authentication support for any third-party OAuth or OAuth2 service not included by default.
  • Client-Side Flow Managers - Managing the authorization process by generating authentication URLs and validating responses from providers.
  • Client-Side Flow Orchestrations - Manages the multi-step OAuth authorization process by generating redirect URLs and validating callback responses.
  • Session Cookie Security - Authentication state is persisted between requests using encrypted cookies with configurable security attributes.
  • OAuth Providers - Provides a consistent interface for authenticating users through dozens of third-party OAuth providers.
  • Custom Provider Implementations - Implementing a custom interface for any third-party authentication service to handle authorization and user data retrieval.
  • OAuth Session Tracking - Generate authentication URLs and validate responses from providers to manage the authorization process.
  • Multi-Provider Authentication - Ships a unified authentication interface supporting dozens of third-party OAuth and OAuth2 providers.
  • OAuth Profile Normalizers - Retrieving a normalized user profile with common fields plus raw provider data from any supported OAuth service.
  • OAuth Provider Adapters - Abstracts provider-specific OAuth implementations behind a single, unified authentication API.
  • OAuth Provider Interfaces - Defines a common interface for all OAuth providers, allowing uniform authentication and user data retrieval across different services.
  • OAuth - Defines a common interface for all OAuth providers, enabling uniform authentication and user data retrieval across different services.
  • OAuth Provider Registries - A central store where providers are registered by name, enabling dynamic lookup and invocation during authentication flows.
  • Authentication Profile Standardization - Return a consistent User struct with common fields like email, name, avatar URL, and tokens across all supported providers.
  • OAuth Profile Normalizers - A library that returns normalized user data with common fields plus raw provider details from any supported OAuth service.
  • OAuth - Retrieves normalized user profile data from various OAuth providers with common fields.
  • Cookie-Based Session Storage - Persisting authentication state between requests using encrypted cookies with configurable security options.
  • Refresh Token Grants - Obtain new access tokens using refresh tokens when the original token expires.
  • Authentication and Authorization - Simple OAuth and OAuth2 provider integration.
  • Security & Privacy - Idiomatic OAuth and OAuth2 authentication for multiple providers.

Historial de estrellas

Gráfico del historial de estrellas de markbates/gothGráfico del historial de estrellas de markbates/goth

Búsqueda con IA

Explora más repositorios increíbles

Describe lo que necesitas en lenguaje sencillo: la IA clasifica miles de proyectos open-source curados por relevancia.

Start searching with AI

Preguntas frecuentes

¿Qué hace markbates/goth?

Goth is a Go library that provides a consistent, provider-agnostic interface for authenticating users through dozens of third-party OAuth and OAuth2 services. It defines a pluggable provider interface and a central registry where providers are registered by name, enabling dynamic lookup and invocation during authentication flows. The library manages the multi-step OAuth authorization process by generating redirect URLs and validating callback responses, and returns a…

¿Cuáles son las características principales de markbates/goth?

Las características principales de markbates/goth son: Authentication Provider Architectures, OAuth Provider Registrations, Provider Registries, Custom Authentication Providers, Client-Side Flow Managers, Client-Side Flow Orchestrations, Session Cookie Security, OAuth Providers.

¿Qué alternativas de código abierto existen para markbates/goth?

Las alternativas de código abierto para markbates/goth incluyen: vendurehq/vendure — Vendure is a Node.js e-commerce engine and headless commerce framework built with NestJS and TypeScript. It serves as… google/google-api-javascript-client — The Google API JavaScript Client Library is an official client for calling Google APIs directly from browser… answerdotai/fasthtml — FastHTML is a full-stack Python web framework designed for building interactive web applications using pure Python. It… omniauth/omniauth — OmniAuth is a rack authentication framework that allows applications to verify user identities through third-party… thephpleague/oauth2-client — This library is a PHP toolkit for managing OAuth 2.0 authentication flows and connecting applications to external… qor/qor — Qor is a Go admin framework and backend toolkit used for building administrative interfaces, headless content…

Alternativas open-source a Goth

Proyectos open-source similares, clasificados según cuántas características comparten con Goth.
  • vendurehq/vendureAvatar de vendurehq

    vendurehq/vendure

    7,924Ver en GitHub↗

    Vendure is a Node.js e-commerce engine and headless commerce framework built with NestJS and TypeScript. It serves as a multi-channel commerce platform that manages product catalogs, orders, and customers via a strongly typed GraphQL API. The platform is distinguished by its highly extensible architecture, featuring a customizable administrative dashboard where developers can inject custom React components and entity views. It supports multi-channel commerce, allowing the isolation of products, currencies, and regional catalogs from a single unified backend. The engine covers a broad range o

    TypeScriptecommerceecommerce-apiecommerce-framework
    Ver en GitHub↗7,924
  • google/google-api-javascript-clientAvatar de google

    google/google-api-javascript-client

    3,473Ver en GitHub↗

    The Google API JavaScript Client Library is an official client for calling Google APIs directly from browser applications. It provides a programmatic interface to exchange data and execute service requests while managing request construction and response parsing. The library features dynamic client discovery, which loads machine-readable metadata at runtime to automatically generate request methods and parameter validation for various endpoints. It also includes an authentication client that handles OAuth 2.0 authorization flows to securely manage user identity and access tokens in the browse

    CSS
    Ver en GitHub↗3,473
  • omniauth/omniauthAvatar de omniauth

    omniauth/omniauth

    8,088Ver en GitHub↗

    OmniAuth is a rack authentication framework that allows applications to verify user identities through third-party service providers using a single standardized interface. It functions as middleware to separate identity verification from core application logic by intercepting incoming requests. The project employs a strategy-pattern provider model to encapsulate provider-specific logic into interchangeable classes. It provides a custom authentication strategy framework and base classes for building new providers based on industry standards. The framework handles the multi-step authentication

    Ruby
    Ver en GitHub↗8,088
  • answerdotai/fasthtmlAvatar de AnswerDotAI

    AnswerDotAI/fasthtml

    6,846Ver en GitHub↗

    FastHTML is a full-stack Python web framework designed for building interactive web applications using pure Python. It functions as an HTMX integration framework and a Python HTML domain-specific language, allowing developers to generate HTML structures using native objects and functions instead of external templating files. The framework is distinguished by its native support for real-time bidirectional communication via WebSockets and Server-Sent Events, enabling server-side updates to be pushed to the browser without full page reloads. It further integrates identity management through OAut

    Jupyter Notebook
    Ver en GitHub↗6,846
  • Ver las 30 alternativas a Goth→