yao/openapi/user
Max 3f5e0caef8 Add user and team handler attachments to OpenAPI server
- Integrated user and team handler functions into the OpenAPI server's routing structure.
- Established new routes for user and team management under the OpenAPI framework, enhancing the server's capabilities for handling user-related operations.
2025-09-17 09:42:35 +08:00
..
README.md Add user and team handler attachments to OpenAPI server 2025-09-17 09:42:35 +08:00
user.go Add user and team handler attachments to OpenAPI server 2025-09-17 09:42:35 +08:00

User API Module

This module provides comprehensive user management APIs including authentication, profile management, security settings, and third-party integrations.

API Endpoints

Authentication

Method Endpoint Auth Description
GET /user/login Public Get login page configuration
POST /user/login Public User login
POST /user/register Public User registration
POST /user/logout Required User logout

Profile Management

Method Endpoint Auth Description
GET /user/profile Required Get user profile
PUT /user/profile Required Update user profile

Account Security

Method Endpoint Auth Description
PUT /user/account/password Required Change password (requires current password or 2FA)
POST /user/account/password/reset/request Public Request password reset (rate-limited)
POST /user/account/password/reset/verify Public Verify reset token and set new password
GET /user/account/email Required Get current email info
POST /user/account/email/change/request Required Request email change (sends code to current email)
POST /user/account/email/change/verify Required Verify email change with code
POST /user/account/email/verification-code Required Send verification code to current email
POST /user/account/email/verify Required Verify current email
GET /user/account/mobile Required Get current mobile info
POST /user/account/mobile/change/request Required Request mobile change
POST /user/account/mobile/change/verify Required Verify mobile change with code
POST /user/account/mobile/verification-code Required Send verification code to mobile
POST /user/account/mobile/verify Required Verify current mobile

Multi-Factor Authentication (MFA)

Method Endpoint Auth Description
GET /user/2fa/totp Required Get TOTP QR code and setup info
POST /user/2fa/totp/enable Required Enable TOTP with verification
POST /user/2fa/totp/disable Required Disable TOTP with verification
POST /user/2fa/totp/verify Required Verify TOTP code
GET /user/2fa/totp/recovery-codes Required Get TOTP recovery codes
POST /user/2fa/totp/recovery-codes/regenerate Required Regenerate recovery codes
POST /user/2fa/totp/reset Required Reset TOTP (requires email verification)
GET /user/2fa/sms Required Get SMS MFA status
POST /user/2fa/sms/enable Required Enable SMS MFA
POST /user/2fa/sms/disable Required Disable SMS MFA
POST /user/2fa/sms/verification-code Required Send SMS verification code
POST /user/2fa/sms/verify Required Verify SMS code

OAuth & Third-Party Integration

Method Endpoint Auth Description
GET /user/oauth/providers Required Get linked OAuth providers
DELETE /user/oauth/:provider Required Unlink OAuth provider
GET /user/oauth/providers/available Public Get available OAuth providers
GET /user/oauth/:provider/authorize Public Get OAuth authorization URL
POST /user/oauth/:provider/connect Required Connect OAuth provider
POST /user/oauth/:provider/authorize/prepare Public Handle POST callback (Apple, WeChat)
POST /user/oauth/:provider/callback Public Handle GET callback (Google, GitHub)

API Keys Management

Method Endpoint Auth Description
GET /user/api-keys Required Get all user API keys
POST /user/api-keys Required Create new API key
GET /user/api-keys/:key_id Required Get specific API key details
PUT /user/api-keys/:key_id Required Update API key (name, permissions)
DELETE /user/api-keys/:key_id Required Delete API key
POST /user/api-keys/:key_id/regenerate Required Regenerate API key

Balance & Credits

Method Endpoint Auth Description
GET /user/balance Required Get user balance info
GET /user/balance/history Required Get balance change history
GET /user/balance/topup Required Get topup records
POST /user/balance/topup Required Create topup order
GET /user/balance/topup/:order_id Required Get topup order status
POST /user/balance/topup/card-code Required Redeem card code

Subscription Management

Method Endpoint Auth Description
GET /user/subscription Required Get user subscription
PUT /user/subscription Required Update user subscription

Usage Statistics

Method Endpoint Auth Description
GET /user/usage/statistics Required Get user usage statistics
GET /user/usage/history Required Get user usage history

Billing & Invoices

Method Endpoint Auth Description
PUT /user/billing/history Required Update user billing history

Referral & Invitations

Method Endpoint Auth Description
GET /user/invite/code Required Get user invite code
GET /user/invite/statistics Required Get user invite statistics
GET /user/invite/history Required Get user invite history
GET /user/invite/commissions Required Get user invite commissions

Team Management

Method Endpoint Auth Description
GET /user/teams Required Get user teams
POST /user/teams Required Create user team
GET /user/teams/:team_id Required Get user team details
PUT /user/teams/:team_id Required Update user team
DELETE /user/teams/:team_id Required Delete user team
GET /user/teams/:team_id/members Required Get user team members
GET /user/teams/:team_id/members/:member_id Required Get user team member details
POST /user/teams/:team_id/members/:type Required Create user team member
PUT /user/teams/:team_id/members/:member_id Required Update user team member
DELETE /user/teams/:team_id/members/:member_id Required Remove user team member

User Preferences

Method Endpoint Auth Description
GET /user/preferences Required Get user preferences
GET /user/preferences/schema Required Get user preferences schema
PUT /user/preferences Required Update user preferences

Privacy Settings

Method Endpoint Auth Description
GET /user/privacy Required Get user privacy settings
GET /user/privacy/schema Required Get user privacy schema
PUT /user/privacy Required Update user privacy settings

User Management (Admin)

Method Endpoint Auth Description
GET /user/users Required Get users
POST /user/users Required Create user
GET /user/users/:user_id Required Get user details
PUT /user/users/:user_id Required Update user
DELETE /user/users/:user_id Required Delete user

Authentication

  • Public: No authentication required
  • Required: Requires valid OAuth token via oauth.Guard middleware

Notes

  • All endpoints return JSON responses
  • Rate limiting may apply to sensitive operations (password reset, verification codes)
  • This module is designed to eventually replace the signin module
  • OAuth callbacks support both GET (Google, GitHub) and POST (Apple, WeChat) methods