About oauth-implementation
A security development skill for implementing OAuth 2.0 and OpenID Connect authentication. It covers JWT and refresh tokens, session management, and implementation guides for Node.js, Python, and Java.
Key features
- 01OAuth 2.0 authentication flows
- 02OpenID Connect implementation
- 03JWT and refresh token handling
- 04Secure session management
- 05Node.js, Python, and Java guides
Use cases
- 01Building user authentication systems
- 02Integrating third-party APIs
- 03Implementing single sign-on
- 04Securing mobile app authentication
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill oauth-implementationAfter installing, type/oauth-implementationin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/java-spring-security-oauth.mdnodejs-oauth-20-server.mdpython-openid-connect-implementation.mdscripts/security-checklist.shDetails
From the project READMEOAuth Implementation
Table of Contents
Overview
Implement industry-standard OAuth 2.0 and OpenID Connect authentication flows with JWT tokens, refresh tokens, and secure session management.
When to Use
- User authentication systems
- Third-party API integration
- Single Sign-On (SSO) implementation
- Mobile app authentication
- Microservices security
- Social login integration
Quick Start
Minimal working example:
// oauth-server.js - Complete OAuth 2.0 implementation
const express = require("express");
const jwt = require("jsonwebtoken");
const crypto = require("crypto");
const bcrypt = require("bcrypt");
class OAuthServer {
constructor() {
this.app = express();
this.clients = new Map();
this.authorizationCodes = new Map();
this.refreshTokens = new Map();
this.accessTokens = new Map();
// JWT signing keys
this.privateKey = process.env.JWT_PRIVATE_KEY;
this.publicKey = process.env.JWT_PUBLIC_KEY;
this.setupRoutes();
}
// Register OAuth client
registerClient(clientId, clientSecret, redirectUris) {
this.clients.set(clientId, {
clientSecret: bcrypt.hashSync(clientSecret, 10),
// ... (see reference guides for full implementation)
Reference Guides
Detailed implementations in the references/ directory:
| Guide | Contents |
|---|---|
| Node.js OAuth 2.0 Server | Node.js OAuth 2.0 Server |
| Python OpenID Connect Implementation | Python OpenID Connect Implementation |
| Java Spring Security OAuth | Java Spring Security OAuth |
Best Practices
✅ DO
- Use PKCE for public clients
- Implement token rotation
- Store tokens securely
- Use HTTPS everywhere
- Validate redirect URIs
- Implement rate limiting
- Use short-lived access tokens
- Log authentication events
❌ DON'T
- Store tokens in localStorage
- Use implicit flow
- Skip state parameter
- Expose client secrets
- Allow open redirects
- Use weak signing keys
Comments
Markdown supported