code.gitea.io/gitea@v1.21.7/routers/api/packages/conan/auth.go (about)

     1  // Copyright 2022 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package conan
     5  
     6  import (
     7  	"net/http"
     8  
     9  	user_model "code.gitea.io/gitea/models/user"
    10  	"code.gitea.io/gitea/modules/log"
    11  	"code.gitea.io/gitea/services/auth"
    12  	"code.gitea.io/gitea/services/packages"
    13  )
    14  
    15  var _ auth.Method = &Auth{}
    16  
    17  type Auth struct{}
    18  
    19  func (a *Auth) Name() string {
    20  	return "conan"
    21  }
    22  
    23  // Verify extracts the user from the Bearer token
    24  func (a *Auth) Verify(req *http.Request, w http.ResponseWriter, store auth.DataStore, sess auth.SessionStore) (*user_model.User, error) {
    25  	uid, err := packages.ParseAuthorizationToken(req)
    26  	if err != nil {
    27  		log.Trace("ParseAuthorizationToken: %v", err)
    28  		return nil, err
    29  	}
    30  
    31  	if uid == 0 {
    32  		return nil, nil
    33  	}
    34  
    35  	u, err := user_model.GetUserByID(req.Context(), uid)
    36  	if err != nil {
    37  		log.Error("GetUserByID:  %v", err)
    38  		return nil, err
    39  	}
    40  
    41  	return u, nil
    42  }