basePath: /
definitions:
  handlers.CreateInviteRequest:
    properties:
      expiresAt:
        type: string
      maxUses:
        type: integer
      note:
        type: string
    type: object
  handlers.CreateUserRequest:
    properties:
      account:
        type: string
      avatarUrl:
        type: string
      bio:
        type: string
      email:
        type: string
      level:
        type: integer
      password:
        type: string
      phone:
        type: string
      secondaryEmails:
        items:
          type: string
        type: array
      sproutCoins:
        type: integer
      username:
        type: string
      websiteUrl:
        type: string
    type: object
  handlers.ForgotPasswordRequest:
    properties:
      account:
        type: string
      email:
        type: string
    type: object
  handlers.LoginRequest:
    properties:
      account:
        type: string
      clientId:
        type: string
      clientName:
        type: string
      password:
        type: string
      turnstileToken:
        type: string
    type: object
  handlers.OAuthBindURLRequest:
    properties:
      returnTo:
        type: string
    type: object
  handlers.PutAdminOAuthRequest:
    properties:
      allowOAuthSignUpWhenInviteRequired:
        type: boolean
      allowedReturnPrefixes:
        items:
          type: string
        type: array
      giteaBaseUrl:
        type: string
      giteaClientId:
        type: string
      giteaClientSecret:
        type: string
      giteaEnabled:
        type: boolean
      giteaLogoUrl:
        type: string
      githubClientId:
        type: string
      githubClientSecret:
        type: string
      githubEnabled:
        type: boolean
      githubLogoUrl:
        type: string
      googleClientId:
        type: string
      googleClientSecret:
        type: string
      googleEnabled:
        type: boolean
      googleLogoUrl:
        type: string
      linuxdoClientId:
        type: string
      linuxdoClientSecret:
        type: string
      linuxdoConnectBaseUrl:
        type: string
      linuxdoEnabled:
        type: boolean
      linuxdoLogoUrl:
        type: string
      microsoftClientId:
        type: string
      microsoftClientSecret:
        type: string
      microsoftEnabled:
        type: boolean
      microsoftLogoUrl:
        type: string
      microsoftTenant:
        type: string
    type: object
  handlers.PutAdminTurnstileRequest:
    properties:
      enabled:
        type: boolean
      secretKey:
        type: string
      siteKey:
        type: string
    type: object
  handlers.RegisterRequest:
    properties:
      account:
        type: string
      email:
        type: string
      inviteCode:
        type: string
      password:
        type: string
      turnstileToken:
        type: string
      username:
        type: string
    type: object
  handlers.ResetPasswordRequest:
    properties:
      account:
        type: string
      code:
        type: string
      newPassword:
        type: string
    type: object
  handlers.SecondaryEmailRequest:
    properties:
      email:
        type: string
    type: object
  handlers.UpdateCheckInConfigRequest:
    properties:
      rewardCoins:
        type: integer
    type: object
  handlers.UpdateProfileRequest:
    properties:
      avatarUrl:
        type: string
      bio:
        type: string
      password:
        type: string
      phone:
        type: string
      username:
        type: string
      websiteUrl:
        type: string
    type: object
  handlers.UpdateRegistrationPolicyRequest:
    properties:
      forbiddenAccounts:
        type: string
      inviteRegisterRewardCoins:
        description: nil 表示不修改此项
        type: integer
      requireInviteCode:
        type: boolean
    type: object
  handlers.UpdateUserRequest:
    properties:
      avatarUrl:
        type: string
      banReason:
        type: string
      banned:
        type: boolean
      bio:
        type: string
      email:
        type: string
      level:
        type: integer
      password:
        type: string
      phone:
        type: string
      secondaryEmails:
        items:
          type: string
        type: array
      sproutCoins:
        type: integer
      username:
        type: string
      websiteUrl:
        type: string
    type: object
  handlers.VerifyEmailRequest:
    properties:
      account:
        type: string
      code:
        type: string
    type: object
  handlers.VerifyRequest:
    properties:
      token:
        type: string
    type: object
  handlers.VerifySecondaryEmailRequest:
    properties:
      code:
        type: string
      email:
        type: string
    type: object
host: localhost:8080
info:
  contact: {}
  description: 统一认证、用户资料、每日签到、公开用户主页与管理端等 JSON HTTP 接口。
  title: 萌芽账户认证中心 API
  version: 0.1.0
paths:
  /:
    get:
      description: 与 GET /api 相同，返回名称、版本与路由前缀说明。
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            additionalProperties: true
            type: object
      summary: API 简介 JSON
      tags:
      - meta
  /api:
    get:
      description: 与 GET / 相同。
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            additionalProperties: true
            type: object
      summary: API 简介 JSON
      tags:
      - meta
  /api/admin/check-in/config:
    get:
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            additionalProperties: true
            type: object
        "401":
          description: Unauthorized
          schema:
            additionalProperties: true
            type: object
      security:
      - AdminToken: []
      summary: 签到奖励配置（管理端也可用）
      tags:
      - admin
    put:
      consumes:
      - application/json
      parameters:
      - description: rewardCoins
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/handlers.UpdateCheckInConfigRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            additionalProperties: true
            type: object
        "400":
          description: Bad Request
          schema:
            additionalProperties: true
            type: object
        "401":
          description: Unauthorized
          schema:
            additionalProperties: true
            type: object
        "500":
          description: Internal Server Error
          schema:
            additionalProperties: true
            type: object
      security:
      - AdminToken: []
      summary: 更新签到奖励
      tags:
      - admin
  /api/admin/oauth:
    get:
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            additionalProperties: true
            type: object
        "401":
          description: Unauthorized
          schema:
            additionalProperties: true
            type: object
      security:
      - AdminToken: []
      summary: OAuth 配置（脱敏）
      tags:
      - admin
    put:
      consumes:
      - application/json
      parameters:
      - description: 配置
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/handlers.PutAdminOAuthRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            additionalProperties: true
            type: object
        "400":
          description: Bad Request
          schema:
            additionalProperties: true
            type: object
        "401":
          description: Unauthorized
          schema:
            additionalProperties: true
            type: object
        "500":
          description: Internal Server Error
          schema:
            additionalProperties: true
            type: object
      security:
      - AdminToken: []
      summary: 更新 OAuth 配置
      tags:
      - admin
  /api/admin/registration:
    get:
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            additionalProperties: true
            type: object
        "401":
          description: Unauthorized
          schema:
            additionalProperties: true
            type: object
      security:
      - AdminToken: []
      summary: 注册策略与邀请码列表
      tags:
      - admin
    put:
      consumes:
      - application/json
      parameters:
      - description: 策略
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/handlers.UpdateRegistrationPolicyRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            additionalProperties: true
            type: object
        "400":
          description: Bad Request
          schema:
            additionalProperties: true
            type: object
        "401":
          description: Unauthorized
          schema:
            additionalProperties: true
            type: object
        "500":
          description: Internal Server Error
          schema:
            additionalProperties: true
            type: object
      security:
      - AdminToken: []
      summary: 更新注册策略
      tags:
      - admin
  /api/admin/registration/invites:
    post:
      consumes:
      - application/json
      parameters:
      - description: 邀请配置
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/handlers.CreateInviteRequest'
      produces:
      - application/json
      responses:
        "201":
          description: Created
          schema:
            additionalProperties: true
            type: object
        "400":
          description: Bad Request
          schema:
            additionalProperties: true
            type: object
        "401":
          description: Unauthorized
          schema:
            additionalProperties: true
            type: object
      security:
      - AdminToken: []
      summary: 创建邀请码
      tags:
      - admin
  /api/admin/registration/invites/{code}:
    delete:
      parameters:
      - description: 邀请码
        in: path
        name: code
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            additionalProperties: true
            type: object
        "400":
          description: Bad Request
          schema:
            additionalProperties: true
            type: object
        "401":
          description: Unauthorized
          schema:
            additionalProperties: true
            type: object
        "404":
          description: Not Found
          schema:
            additionalProperties: true
            type: object
      security:
      - AdminToken: []
      summary: 删除邀请码
      tags:
      - admin
  /api/admin/turnstile:
    get:
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            additionalProperties: true
            type: object
        "401":
          description: Unauthorized
          schema:
            additionalProperties: true
            type: object
      security:
      - AdminToken: []
      summary: Turnstile 配置（脱敏）
      tags:
      - admin
    put:
      consumes:
      - application/json
      parameters:
      - description: siteKey、secretKey
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/handlers.PutAdminTurnstileRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            additionalProperties: true
            type: object
        "400":
          description: Bad Request
          schema:
            additionalProperties: true
            type: object
        "401":
          description: Unauthorized
          schema:
            additionalProperties: true
            type: object
        "500":
          description: Internal Server Error
          schema:
            additionalProperties: true
            type: object
      security:
      - AdminToken: []
      summary: 更新 Turnstile 配置
      tags:
      - admin
  /api/admin/users:
    get:
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            additionalProperties: true
            type: object
        "401":
          description: Unauthorized
          schema:
            additionalProperties: true
            type: object
        "500":
          description: Internal Server Error
          schema:
            additionalProperties: true
            type: object
      security:
      - AdminToken: []
      summary: 用户列表
      tags:
      - admin
    post:
      consumes:
      - application/json
      parameters:
      - description: 用户
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/handlers.CreateUserRequest'
      produces:
      - application/json
      responses:
        "201":
          description: Created
          schema:
            additionalProperties: true
            type: object
        "400":
          description: Bad Request
          schema:
            additionalProperties: true
            type: object
        "401":
          description: Unauthorized
          schema:
            additionalProperties: true
            type: object
        "500":
          description: Internal Server Error
          schema:
            additionalProperties: true
            type: object
      security:
      - AdminToken: []
      summary: 创建用户
      tags:
      - admin
  /api/admin/users/{account}:
    delete:
      parameters:
      - description: 账号
        in: path
        name: account
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            additionalProperties: true
            type: object
        "400":
          description: Bad Request
          schema:
            additionalProperties: true
            type: object
        "401":
          description: Unauthorized
          schema:
            additionalProperties: true
            type: object
        "500":
          description: Internal Server Error
          schema:
            additionalProperties: true
            type: object
      security:
      - AdminToken: []
      summary: 删除用户
      tags:
      - admin
    put:
      consumes:
      - application/json
      parameters:
      - description: 账号
        in: path
        name: account
        required: true
        type: string
      - description: 可部分更新
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/handlers.UpdateUserRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            additionalProperties: true
            type: object
        "400":
          description: Bad Request
          schema:
            additionalProperties: true
            type: object
        "401":
          description: Unauthorized
          schema:
            additionalProperties: true
            type: object
        "404":
          description: Not Found
          schema:
            additionalProperties: true
            type: object
        "500":
          description: Internal Server Error
          schema:
            additionalProperties: true
            type: object
      security:
      - AdminToken: []
      summary: 更新用户
      tags:
      - admin
  /api/auth/check-in:
    post:
      consumes:
      - application/json
      produces:
      - application/json
      responses:
        "200":
          description: checkedIn、user、checkIn 等
          schema:
            additionalProperties: true
            type: object
        "401":
          description: Unauthorized
          schema:
            additionalProperties: true
            type: object
        "500":
          description: Internal Server Error
          schema:
            additionalProperties: true
            type: object
      security:
      - BearerAuth: []
      summary: 每日签到
      tags:
      - auth
  /api/auth/forgot-password:
    post:
      consumes:
      - application/json
      parameters:
      - description: 账号与邮箱
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/handlers.ForgotPasswordRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            additionalProperties: true
            type: object
        "400":
          description: Bad Request
          schema:
            additionalProperties: true
            type: object
        "500":
          description: Internal Server Error
          schema:
            additionalProperties: true
            type: object
      summary: 忘记密码（发重置邮件）
      tags:
      - auth
  /api/auth/login:
    post:
      consumes:
      - application/json
      description: 可选 Turnstile：开启时 body 需带 turnstileToken。
      parameters:
      - description: 登录请求
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/handlers.LoginRequest'
      produces:
      - application/json
      responses:
        "200":
          description: token、expiresAt、user
          schema:
            additionalProperties: true
            type: object
        "400":
          description: Bad Request
          schema:
            additionalProperties: true
            type: object
        "401":
          description: Unauthorized
          schema:
            additionalProperties: true
            type: object
        "500":
          description: Internal Server Error
          schema:
            additionalProperties: true
            type: object
      summary: 账号密码登录
      tags:
      - auth
  /api/auth/me:
    get:
      consumes:
      - application/json
      description: '需要 Authorization: Bearer。可选头：X-Visit-Ip、X-Visit-Location、X-Auth-Client、X-Auth-Client-Name。'
      parameters:
      - description: 访客 IP
        in: header
        name: X-Visit-Ip
        type: string
      - description: 访客地区展示文案
        in: header
        name: X-Visit-Location
        type: string
      - description: 接入应用 ID
        in: header
        name: X-Auth-Client
        type: string
      - description: 接入应用名称
        in: header
        name: X-Auth-Client-Name
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: user、checkIn
          schema:
            additionalProperties: true
            type: object
        "401":
          description: Unauthorized
          schema:
            additionalProperties: true
            type: object
        "500":
          description: Internal Server Error
          schema:
            additionalProperties: true
            type: object
      security:
      - BearerAuth: []
      summary: 当前用户（含签到摘要）
      tags:
      - auth
  /api/auth/oauth/{provider}:
    delete:
      consumes:
      - application/json
      parameters:
      - description: github|gitea|google|microsoft|linuxdo
        in: path
        name: provider
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            additionalProperties: true
            type: object
        "400":
          description: Bad Request
          schema:
            additionalProperties: true
            type: object
        "401":
          description: Unauthorized
          schema:
            additionalProperties: true
            type: object
        "500":
          description: Internal Server Error
          schema:
            additionalProperties: true
            type: object
      security:
      - BearerAuth: []
      summary: 解绑 OAuth 提供商
      tags:
      - oauth
  /api/auth/oauth/{provider}/bind:
    post:
      consumes:
      - application/json
      parameters:
      - description: github|gitea|google|microsoft|linuxdo
        in: path
        name: provider
        required: true
        type: string
      - description: returnTo
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/handlers.OAuthBindURLRequest'
      produces:
      - application/json
      responses:
        "200":
          description: url
          schema:
            additionalProperties: true
            type: object
        "400":
          description: Bad Request
          schema:
            additionalProperties: true
            type: object
        "401":
          description: Unauthorized
          schema:
            additionalProperties: true
            type: object
        "500":
          description: Internal Server Error
          schema:
            additionalProperties: true
            type: object
        "503":
          description: Service Unavailable
          schema:
            additionalProperties: true
            type: object
      security:
      - BearerAuth: []
      summary: 已登录用户绑定 OAuth（返回授权 URL）
      tags:
      - oauth
  /api/auth/oauth/{provider}/callback:
    get:
      description: 成功时通常 302 回 return_to 并带 token；失败时 JSON 或重定向错误页。
      parameters:
      - description: 提供商
        in: path
        name: provider
        required: true
        type: string
      - description: 授权码
        in: query
        name: code
        type: string
      - description: state
        in: query
        name: state
        type: string
      - description: IdP 错误码
        in: query
        name: error
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            additionalProperties: true
            type: object
        "302":
          description: 重定向至客户端
        "400":
          description: Bad Request
          schema:
            additionalProperties: true
            type: object
        "404":
          description: Not Found
          schema:
            additionalProperties: true
            type: object
      summary: OAuth 回调（IdP 重定向）
      tags:
      - oauth
  /api/auth/oauth/{provider}/start:
    get:
      parameters:
      - description: github|gitea|google|microsoft|linuxdo
        in: path
        name: provider
        required: true
        type: string
      - description: 登录完成回跳 URL（须符合后台允许前缀）
        in: query
        name: return_to
        required: true
        type: string
      - description: Turnstile 开启时必填
        in: query
        name: turnstile_token
        type: string
      produces:
      - application/json
      responses:
        "302":
          description: 重定向至 IdP
        "400":
          description: Bad Request
          schema:
            additionalProperties: true
            type: object
        "404":
          description: Not Found
          schema:
            additionalProperties: true
            type: object
        "500":
          description: Internal Server Error
          schema:
            additionalProperties: true
            type: object
        "503":
          description: Service Unavailable
          schema:
            additionalProperties: true
            type: object
      summary: OAuth 登录起点（重定向 IdP）
      tags:
      - oauth
  /api/auth/profile:
    put:
      consumes:
      - application/json
      parameters:
      - description: 资料字段
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/handlers.UpdateProfileRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            additionalProperties: true
            type: object
        "400":
          description: Bad Request
          schema:
            additionalProperties: true
            type: object
        "401":
          description: Unauthorized
          schema:
            additionalProperties: true
            type: object
        "500":
          description: Internal Server Error
          schema:
            additionalProperties: true
            type: object
      security:
      - BearerAuth: []
      summary: 更新个人资料（可选改密码）
      tags:
      - auth
  /api/auth/register:
    post:
      consumes:
      - application/json
      parameters:
      - description: 注册请求
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/handlers.RegisterRequest'
      produces:
      - application/json
      responses:
        "200":
          description: sent、expiresAt
          schema:
            additionalProperties: true
            type: object
        "400":
          description: Bad Request
          schema:
            additionalProperties: true
            type: object
        "500":
          description: Internal Server Error
          schema:
            additionalProperties: true
            type: object
      summary: 自助注册（发验证邮件）
      tags:
      - auth
  /api/auth/reset-password:
    post:
      consumes:
      - application/json
      parameters:
      - description: 账号、验证码、新密码
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/handlers.ResetPasswordRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            additionalProperties: true
            type: object
        "400":
          description: Bad Request
          schema:
            additionalProperties: true
            type: object
        "500":
          description: Internal Server Error
          schema:
            additionalProperties: true
            type: object
      summary: 重置密码
      tags:
      - auth
  /api/auth/secondary-email/request:
    post:
      consumes:
      - application/json
      parameters:
      - description: 邮箱
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/handlers.SecondaryEmailRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            additionalProperties: true
            type: object
        "400":
          description: Bad Request
          schema:
            additionalProperties: true
            type: object
        "401":
          description: Unauthorized
          schema:
            additionalProperties: true
            type: object
        "500":
          description: Internal Server Error
          schema:
            additionalProperties: true
            type: object
      security:
      - BearerAuth: []
      summary: 请求验证辅助邮箱（发邮件）
      tags:
      - auth
  /api/auth/secondary-email/verify:
    post:
      consumes:
      - application/json
      parameters:
      - description: 邮箱与验证码
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/handlers.VerifySecondaryEmailRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            additionalProperties: true
            type: object
        "400":
          description: Bad Request
          schema:
            additionalProperties: true
            type: object
        "401":
          description: Unauthorized
          schema:
            additionalProperties: true
            type: object
        "500":
          description: Internal Server Error
          schema:
            additionalProperties: true
            type: object
      security:
      - BearerAuth: []
      summary: 验证并绑定辅助邮箱
      tags:
      - auth
  /api/auth/verify:
    post:
      consumes:
      - application/json
      description: 校验 token 是否有效；可在请求头带 X-Auth-Client / X-Auth-Client-Name 记录接入应用。
      parameters:
      - description: token
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/handlers.VerifyRequest'
      produces:
      - application/json
      responses:
        "200":
          description: valid、user
          schema:
            additionalProperties: true
            type: object
        "400":
          description: Bad Request
          schema:
            additionalProperties: true
            type: object
        "401":
          description: Unauthorized
          schema:
            additionalProperties: true
            type: object
        "500":
          description: Internal Server Error
          schema:
            additionalProperties: true
            type: object
      summary: 校验 JWT
      tags:
      - auth
  /api/auth/verify-email:
    post:
      consumes:
      - application/json
      parameters:
      - description: 账号与验证码
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/handlers.VerifyEmailRequest'
      produces:
      - application/json
      responses:
        "201":
          description: created、user
          schema:
            additionalProperties: true
            type: object
        "400":
          description: Bad Request
          schema:
            additionalProperties: true
            type: object
        "500":
          description: Internal Server Error
          schema:
            additionalProperties: true
            type: object
      summary: 邮箱验证并完成注册
      tags:
      - auth
  /api/health:
    get:
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            additionalProperties: true
            type: object
      summary: 健康检查
      tags:
      - meta
  /api/public/registration-policy:
    get:
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            additionalProperties: true
            type: object
      summary: 公开注册策略与 OAuth/Turnstile 开关
      tags:
      - public
  /api/public/users:
    get:
      produces:
      - application/json
      responses:
        "200":
          description: total、users
          schema:
            additionalProperties: true
            type: object
        "500":
          description: Internal Server Error
          schema:
            additionalProperties: true
            type: object
      summary: 公开用户目录
      tags:
      - public
  /api/public/users/{account}:
    get:
      description: 可选 Authorization：登录用户可看到点赞状态等扩展字段。
      parameters:
      - description: 账号
        in: path
        name: account
        required: true
        type: string
      - description: Bearer（可选）
        in: header
        name: Authorization
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: user、profileLikeCount 等
          schema:
            additionalProperties: true
            type: object
        "400":
          description: Bad Request
          schema:
            additionalProperties: true
            type: object
        "404":
          description: Not Found
          schema:
            additionalProperties: true
            type: object
        "500":
          description: Internal Server Error
          schema:
            additionalProperties: true
            type: object
      summary: 公开用户主页
      tags:
      - public
  /api/public/users/{account}/like:
    post:
      consumes:
      - application/json
      parameters:
      - description: 被点赞用户账号
        in: path
        name: account
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            additionalProperties: true
            type: object
        "400":
          description: Bad Request
          schema:
            additionalProperties: true
            type: object
        "401":
          description: Unauthorized
          schema:
            additionalProperties: true
            type: object
        "404":
          description: Not Found
          schema:
            additionalProperties: true
            type: object
        "500":
          description: Internal Server Error
          schema:
            additionalProperties: true
            type: object
      security:
      - BearerAuth: []
      summary: 主页点赞
      tags:
      - public
schemes:
- http
- https
securityDefinitions:
  AdminToken:
    description: 管理端令牌；也可使用 Query `token` 或与部分客户端相同的 `Authorization` 头（见实现）。
    in: header
    name: X-Admin-Token
    type: apiKey
  BearerAuth:
    description: JWT：Authorization 头填写「Bearer 」+ token（示例：Bearer eyJ...）。
    in: header
    name: Authorization
    type: apiKey
swagger: "2.0"
