53 lines
1.2 KiB
Go
53 lines
1.2 KiB
Go
// FILE: auth/doc.go
|
|
package auth
|
|
|
|
/*
|
|
Package auth provides modular authentication components:
|
|
|
|
# Argon2 Password Hashing
|
|
|
|
Standalone password hashing using Argon2id:
|
|
|
|
hash, err := auth.HashPassword("password123")
|
|
err = auth.VerifyPassword("password123", hash)
|
|
|
|
// With custom parameters
|
|
hash, err := auth.HashPassword("password123",
|
|
auth.WithTime(5),
|
|
auth.WithMemory(128*1024))
|
|
|
|
# JWT Token Management
|
|
|
|
JSON Web Token generation and validation:
|
|
|
|
// HS256 (symmetric)
|
|
jwtMgr, _ := auth.NewJWT(secret)
|
|
token, _ := jwtMgr.GenerateToken("user1", claims)
|
|
userID, claims, _ := jwtMgr.ValidateToken(token)
|
|
|
|
// RS256 (asymmetric)
|
|
jwtMgr, _ := auth.NewJWTRSA(privateKey)
|
|
|
|
// One-off operations
|
|
token, _ := auth.GenerateHS256Token(secret, "user1", claims, 1*time.Hour)
|
|
|
|
# SCRAM-SHA256 Authentication
|
|
|
|
Server and client implementation for SCRAM:
|
|
|
|
// Server
|
|
server := auth.NewScramServer()
|
|
server.AddCredential(credential)
|
|
|
|
// Client
|
|
client := auth.NewScramClient(username, password)
|
|
|
|
# HTTP Authentication Parsing
|
|
|
|
Utility functions for HTTP headers:
|
|
|
|
username, password, _ := auth.ParseBasicAuth(header)
|
|
token, _ := auth.ParseBearerToken(header)
|
|
|
|
Each module can be used independently without initializing other components.
|
|
*/ |