oauth-integrations

skill:oauth-integrations - OAuth 2.0 Provider Integrations

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "oauth-integrations" with this command: npx skills add olino3/forge/olino3-forge-oauth-integrations

skill:oauth-integrations - OAuth 2.0 Provider Integrations

Version: 1.0.0

Purpose

Implements OAuth 2.0 authentication with multiple providers: GitHub, Okta, Google, and Microsoft Entra (Azure AD). This skill covers the full OAuth 2.0 lifecycle: Authorization Code Flow, PKCE (Proof Key for Code Exchange), token exchange, refresh tokens, scope management, and provider-specific quirks.

Use this skill when:

  • Implementing OAuth 2.0 authentication with GitHub, Okta, Google, or Microsoft Entra

  • Setting up Authorization Code Flow with or without PKCE

  • Configuring callback handling and token exchange

  • Managing token storage, refresh, and revocation

  • Handling provider-specific scope configuration and consent flows

  • Implementing multi-provider authentication in a single application

  • Setting up OIDC (OpenID Connect) for identity verification

What it produces:

  • OAuth 2.0 provider configuration and client registration guidance

  • Authorization Code Flow implementation with PKCE support

  • Callback route handlers for token exchange

  • Token storage and refresh logic (access tokens, refresh tokens, ID tokens)

  • Scope configuration per provider

  • State parameter CSRF protection

  • Error handling for OAuth failure scenarios

  • Multi-provider authentication architecture

Triggers: oauth , oauth2 , oauth integration , github oauth , okta auth , google oauth , microsoft entra , azure ad oauth

Provider-Specific Details

GitHub

  • OAuth App vs GitHub App: OAuth Apps for user-level access; GitHub Apps for org/repo-level with fine-grained permissions

  • User and org scopes: user , repo , read:org , admin:org , gist , notifications

  • Device flow: For CLI tools and devices without browsers (urn:ietf:params:oauth:grant-type:device_code )

  • Quirks: Access tokens don't expire by default (OAuth Apps); GitHub Apps use installation tokens with 1-hour TTL

Okta

  • Authorization Server configuration: Default (/oauth2/default ) vs custom authorization servers

  • Custom scopes: Define and manage custom scopes in Okta Admin Console

  • OIDC: Full OpenID Connect support with ID tokens, UserInfo endpoint, and claims mapping

  • Quirks: Requires explicit authorization server ID in URLs; supports both Okta-hosted and custom login pages

Google

  • OAuth 2.0 for Web: Google Identity Services (GIS) library for sign-in button and one-tap

  • Consent screen: Configure in Google Cloud Console; unverified apps limited to 100 users

  • Offline access: Use access_type=offline to receive refresh tokens; prompt=consent forces re-consent

  • Quirks: Refresh tokens only returned on first authorization unless prompt=consent is set; Google uses id_token for identity via OIDC

Microsoft Entra (Azure AD)

  • Tenant types: Single-tenant, multi-tenant, personal accounts, or B2C

  • App registration: Register in Azure Portal → App registrations; configure redirect URIs per platform

  • Graph API scopes: User.Read , Mail.Read , Calendars.Read , Files.Read — use /.default for application permissions

  • Quirks: Uses MSAL.js library; v2.0 endpoint supports both work/school and personal accounts; token cache management via msal-node or msal-browser

File Structure

skills/oauth-integrations/ ├── SKILL.md (this file) └── examples.md

Interface References

  • Context: Loaded via ContextProvider Interface

  • Memory: Accessed via MemoryStore Interface

  • Shared Patterns: Shared Loading Patterns

  • Schemas: Validated against context_metadata.schema.json and memory_entry.schema.json

Mandatory Workflow

IMPORTANT: Execute ALL steps in order. Do not skip any step.

Step 1: Initial Analysis

  • Gather inputs: required OAuth providers, application type, redirect URI requirements

  • Detect framework (Express, Next.js, FastAPI, Spring Boot, ASP.NET) — determines callback handling and middleware patterns

  • Detect language (TypeScript, JavaScript, Python, Java, C#) — determines SDK and library choices

  • Identify required OAuth providers (GitHub, Okta, Google, Microsoft Entra) from user request

  • Detect existing auth setup — check for existing OAuth configurations, Passport.js strategies, MSAL instances, or Okta SDKs

  • Check for existing dependencies: passport , @okta/okta-auth-js , @azure/msal-node , googleapis , octokit

  • Determine project name for memory lookup

Step 2: Load Memory

Follow Standard Memory Loading with skill="oauth-integrations" and domain="security" .

  • Load project_overview.md — understand project's OAuth history and configured providers

  • Load common_patterns.md — reuse previously established OAuth patterns and token management strategies

  • If first run: create memory directory for the project

Step 3: Load Context

Follow Standard Context Loading for the security domain. Stay within the file budget declared in frontmatter.

  • Load security domain context relevant to OAuth 2.0, token management, and session security

  • Cross-reference with any framework-specific context (Express middleware, Next.js API routes, etc.)

  • Respect the file budget of 4 context files maximum

Step 4: Implement OAuth Integration

This is the core action. Set up OAuth 2.0 authentication for the requested providers:

4a: OAuth 2.0 Flow Setup

  • Determine flow type:

  • Authorization Code Flow — standard server-side applications

  • Authorization Code Flow + PKCE — SPAs, mobile apps, and public clients

  • Device Authorization Flow — CLI tools and devices without browsers (GitHub)

  • Generate cryptographically secure state parameter for CSRF protection

  • Generate PKCE code_verifier (43-128 character random string) and code_challenge (SHA-256 hash, base64url-encoded)

  • Construct authorization URL with required parameters (client_id , redirect_uri , scope , state , code_challenge , code_challenge_method )

4b: Provider Configuration

GitHub:

Okta:

  • Create application in Okta Admin Console (Web Application type for Auth Code flow)

  • Configure authorization server (default or custom)

  • Store OKTA_DOMAIN , OKTA_CLIENT_ID , OKTA_CLIENT_SECRET in environment variables

  • Authorization endpoint: https://{okta-domain}/oauth2/{server-id}/v1/authorize

  • Token endpoint: https://{okta-domain}/oauth2/{server-id}/v1/token

  • UserInfo endpoint: https://{okta-domain}/oauth2/{server-id}/v1/userinfo

Google:

Microsoft Entra:

4c: Callback Handling and Token Exchange

  • Implement callback route to receive authorization code

  • Validate state parameter matches the stored value (CSRF protection)

  • Exchange authorization code for tokens via POST to token endpoint

  • Parse token response: access_token , refresh_token , id_token (OIDC), expires_in , token_type

  • Validate ID token signature and claims (for OIDC providers: Okta, Google, Microsoft Entra)

4d: Token Storage and Refresh

  • Server-side: Store tokens in encrypted server-side sessions or database; never expose to client

  • Client-side (SPA): Store in memory only; use backend-for-frontend (BFF) pattern for token management

  • Implement token refresh logic:

  • Check expires_in before API calls

  • Use refresh_token grant type to obtain new access tokens

  • Handle refresh token rotation (Okta, Microsoft Entra)

  • Handle refresh token revocation on sign-out

  • Token revocation: Call provider's revocation endpoint on sign-out

4e: Scope Configuration

  • Configure minimum required scopes per provider:

  • GitHub: read:user , user:email (minimum for authentication)

  • Okta: openid , profile , email (OIDC standard scopes)

  • Google: openid , profile , email (OIDC standard scopes)

  • Microsoft Entra: openid , profile , email , User.Read (Graph API access)

  • Request additional scopes incrementally (progressive authorization)

  • Handle scope changes and re-authorization flows

4f: Error Handling

  • Handle OAuth error responses: access_denied , invalid_grant , invalid_scope , server_error

  • Handle token expiration and refresh failures

  • Handle provider-specific errors:

  • GitHub: rate limiting (403), bad verification code

  • Okta: invalid authorization server, expired sessions

  • Google: consent required, unverified app restrictions

  • Microsoft Entra: admin consent required, tenant restrictions

  • Implement user-facing error messages with appropriate detail level

4g: State Parameter CSRF Protection

  • Generate cryptographically random state value (minimum 32 bytes, base64url-encoded)

  • Store state in server-side session or secure HTTP-only cookie before redirect

  • Validate returned state matches stored value in callback handler

  • Reject requests with missing or mismatched state values

  • Clear stored state after validation (one-time use)

Step 5: Generate Output

  • Save output to /claudedocs/oauth-integrations_{project}_{YYYY-MM-DD}.md

  • Follow naming conventions in ../OUTPUT_CONVENTIONS.md

  • Include:

  • OAuth provider configuration and registration instructions

  • Authorization flow implementation code

  • Callback handler implementation

  • Token management (storage, refresh, revocation)

  • Scope configuration per provider

  • Environment variable list

  • Error handling patterns

  • Security considerations and best practices

  • Provider console setup checklists

Step 6: Update Memory

Follow Standard Memory Update for skill="oauth-integrations" . Store any newly learned patterns, conventions, or project insights.

  • Update project_overview.md with configured OAuth providers and flow details

  • Update common_patterns.md with OAuth patterns, token management strategies, and provider-specific quirks

  • Record any project-specific customizations or workarounds

Compliance Checklist

Before completing, verify:

  • All mandatory workflow steps executed in order

  • Standard Memory Loading pattern followed (Step 2)

  • Standard Context Loading pattern followed (Step 3)

  • Client secrets stored in environment variables (never hardcoded)

  • State parameter CSRF protection implemented

  • PKCE used for public clients (SPAs, mobile apps)

  • Tokens stored securely (server-side session or encrypted storage)

  • Token refresh logic implemented with expiration checks

  • ID tokens validated (signature and claims) for OIDC providers

  • OAuth error responses handled with user-facing messages

  • Redirect URIs match registered values in provider consoles

  • Output saved with standard naming convention

  • Standard Memory Update pattern followed (Step 6)

Version History

Version Date Changes

1.0.0 2026-02-12 Initial release — OAuth 2.0 integrations with GitHub, Okta, Google, Microsoft Entra (Azure AD); Authorization Code Flow, PKCE, token management, scope configuration, CSRF protection

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

office

No summary provided by upstream source.

Repository SourceNeeds Review
General

jquery-4

No summary provided by upstream source.

Repository SourceNeeds Review
General

responsive-images

No summary provided by upstream source.

Repository SourceNeeds Review