代码之家  ›  专栏  ›  技术社区  ›  mornindew

大摇大摆,不要叫我的头检查。

  •  0
  • mornindew  · 技术社区  · 6 年前

    我有一个通过Go-Swagger生成的API。我正在尝试进行会话检查,它没有按我预期的那样触发。我跟着一个 example 我在Github找到的,但似乎不适合我。

    我的代码:

    // Applies when the "X-Session-Key" header is set
        api.SessionKeyHeaderAuth = func(token string) (interface{}, error) {
        // test the token
        success := routeHandler.HandleSessionHeaderKey(token)
        if success{
            return nil, nil
        }
        //We are pessimistic, if they aren't successful then we return a 401
        api.Logger("Access attempt with incorrect api key auth: %s", token)
        return nil, errors.New(401, "incorrect api key auth")
        }
    

    我的山药(用于我卷边的终点):

    /auth/logout:
      post:
        summary: Logs in the user
        consumes:
          - application/x-www-form-urlencoded
        operationId: authLogoutUser
        tags:
          - auth
        description:
          Allow users to log out and their session will be terminated
        produces:
          - application/json
        parameters:
          - in: header
            name: X-Session-Key
            type: string
            required: true
          - in: header
            name: X-Profile-Key
            type: string
            required: true
        responses:
          200:
           description: Login Success
           headers:
            ProfileKeyHeader:
              type: string
              description: The key for the profile data
            SessionKeyHeader:
              type: string
              description: The key for the session data
          400:
           description: Whether the user is not found or error while login, decided on a generic login failure error
           schema:
            $ref: 'definitions.yaml#/definitions/Error'
          429:
           description: Too many requests and being throttled
           schema:
            $ref: 'definitions.yaml#/definitions/Error'
          500:
            description: Too many requests and being throttled
            schema:
              $ref: 'definitions.yaml#/definitions/Error'
    

    如果有人帮我看我做错了什么,我将不胜感激。

    1 回复  |  直到 6 年前
        1
  •  0
  •   mornindew    6 年前

    所以,我是个白痴…

    问题是我忘了在我的自大的言辞中增加安全性。一旦我这样做了,我的函数就被调用了。

    operationId: authLogoutUser
            tags:
              - auth
            description:
              Allow users to log out and their session will be terminated
            produces:
              - application/json
            security:
              - SessionKeyHeader: []