1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- // Copyright 2019 The Gitea Authors. All rights reserved.
- // SPDX-License-Identifier: MIT
-
- package auth
-
- import (
- "context"
- "net/http"
-
- user_model "code.gitea.io/gitea/models/user"
- "code.gitea.io/gitea/modules/session"
- "code.gitea.io/gitea/modules/web/middleware"
- )
-
- // DataStore represents a data store
- type DataStore middleware.ContextDataStore
-
- // SessionStore represents a session store
- type SessionStore session.Store
-
- // Method represents an authentication method (plugin) for HTTP requests.
- type Method interface {
- // Verify tries to verify the authentication data contained in the request.
- // If verification is successful returns either an existing user object (with id > 0)
- // or a new user object (with id = 0) populated with the information that was found
- // in the authentication data (username or email).
- // Second argument returns err if verification fails, otherwise
- // First return argument returns nil if no matched verification condition
- Verify(http *http.Request, w http.ResponseWriter, store DataStore, sess SessionStore) (*user_model.User, error)
-
- Name() string
- }
-
- // PasswordAuthenticator represents a source of authentication
- type PasswordAuthenticator interface {
- Authenticate(ctx context.Context, user *user_model.User, login, password string) (*user_model.User, error)
- }
-
- // LocalTwoFASkipper represents a source of authentication that can skip local 2fa
- type LocalTwoFASkipper interface {
- IsSkipLocalTwoFA() bool
- }
-
- // SynchronizableSource represents a source that can synchronize users
- type SynchronizableSource interface {
- Sync(ctx context.Context, updateExisting bool) error
- }
|