Documentation ¶
Index ¶
- Variables
- func UserGroupFromContext(ctx context.Context) string
- func UserIDFromContext(ctx context.Context) primitive.ObjectID
- type Account
- type Database
- type Provider
- func (p *Provider) CreateProfile(username, sessionName string, providerData ProviderData) (primitive.ObjectID, *UserTokenData, error)
- func (p *Provider) CreateSession(userID primitive.ObjectID, sessionName string) (*UserTokenData, error)
- func (p *Provider) Delete(docID primitive.ObjectID) error
- func (p *Provider) Find(identityKey string) (primitive.ObjectID, *ProviderData, error)
- func (p *Provider) Get(docID primitive.ObjectID) (*ProviderData, error)
- func (p *Provider) Set(docID primitive.ObjectID, data ProviderData) error
- type ProviderData
- type Response
- type SecureWorker
- func (sw *SecureWorker) AuthorizationMiddleware(next http.Handler) http.Handler
- func (sw *SecureWorker) CloseSessionHandler(w http.ResponseWriter, r *http.Request)
- func (sw *SecureWorker) CreateUserSession(userID primitive.ObjectID, sessionName string) (*UserTokenData, error)
- func (sw *SecureWorker) DeleteAllUserSessions(userID primitive.ObjectID) error
- func (sw *SecureWorker) DeleteAuthorizationCookies(w http.ResponseWriter)
- func (sw *SecureWorker) DeleteUserSession(userID primitive.ObjectID, sessionID string) error
- func (sw *SecureWorker) MakeAuthorizationProvider(name, identityField string) *Provider
- func (sw *SecureWorker) RefreshSessionTokens(refreshToken string) (*UserTokenData, error)
- func (sw *SecureWorker) RefreshTokenHandler(w http.ResponseWriter, r *http.Request)
- func (sw *SecureWorker) SetAuthorizationCookies(w http.ResponseWriter, userTokens *UserTokenData)
- type UserTokenData
Constants ¶
This section is empty.
Variables ¶
var ( ErrNoUserIdClaim = errors.New("в токене отсутствует user_id") ErrUnvalidUserID = errors.New("user_id неверен или отсутствует") ErrNoGroupClaim = errors.New("в токене отсутствует признак группу пользователя") ErrUnvalidGroup = errors.New("признак группы неверен или отсутствует") ErrNoSessionClaim = errors.New("в токене отсутствует ключ сессии") ErrUnvalidSession = errors.New("ключ сессии неверен или отсутствует") ErrUnvalidRefreshToken = errors.New("передан неправильный refresh токен") )
var (
ErrUsernameIsEmpty = errors.New("username must by not empty. generating failed")
)
Functions ¶
func UserGroupFromContext ¶ added in v0.0.4
Получение группы пользователя из контекста
Types ¶
type Provider ¶ added in v0.13.0
type Provider struct { Response Response // contains filtered or unexported fields }
func (*Provider) CreateProfile ¶ added in v0.13.0
func (p *Provider) CreateProfile(username, sessionName string, providerData ProviderData) (primitive.ObjectID, *UserTokenData, error)
Метод служит для создания пользовательского профиля в системе
func (*Provider) CreateSession ¶ added in v0.13.0
func (*Provider) Delete ¶ added in v0.13.0
Метод производит удаление информации о провайдере из документа пользователя
func (*Provider) Find ¶ added in v0.13.0
Метод производит поиск документа пользователя по значению поля идентификации провайдера
type ProviderData ¶ added in v0.13.0
type Response ¶ added in v0.13.0
type Response interface {
ResponseJSON(w http.ResponseWriter, code int, obj interface{})
}
type SecureWorker ¶ added in v0.13.0
type SecureWorker struct {
// contains filtered or unexported fields
}
func NewSecureWorker ¶ added in v0.13.0
func NewSecureWorker(salt, accountCollection string, response Response, db Database) *SecureWorker
func (*SecureWorker) AuthorizationMiddleware ¶ added in v0.13.0
func (sw *SecureWorker) AuthorizationMiddleware(next http.Handler) http.Handler
Middleware для аутентификации пользователя на основе access_token'a
Токен должен быть передан в запросе одним из следующих методов: Header - Authorirzation: Bearer <access_token> Cookie - name "access_token" value <access_token> Query - named ?token=<access_token>
func (*SecureWorker) CloseSessionHandler ¶ added in v0.13.0
func (sw *SecureWorker) CloseSessionHandler(w http.ResponseWriter, r *http.Request)
func (*SecureWorker) CreateUserSession ¶ added in v0.13.0
func (sw *SecureWorker) CreateUserSession(userID primitive.ObjectID, sessionName string) (*UserTokenData, error)
Создание новой сессии пользователя
func (*SecureWorker) DeleteAllUserSessions ¶ added in v0.13.0
func (sw *SecureWorker) DeleteAllUserSessions(userID primitive.ObjectID) error
Метод позволяет удалить все сессии пользователя
!ВАЖНО активные access_token'ы продолжат работать в рамках своего срока годности
func (*SecureWorker) DeleteAuthorizationCookies ¶ added in v0.13.0
func (sw *SecureWorker) DeleteAuthorizationCookies(w http.ResponseWriter)
func (*SecureWorker) DeleteUserSession ¶ added in v0.13.0
func (sw *SecureWorker) DeleteUserSession(userID primitive.ObjectID, sessionID string) error
Метод позволяет удалить одну сессию пользователя по ее идентификатору
func (*SecureWorker) MakeAuthorizationProvider ¶ added in v0.13.0
func (sw *SecureWorker) MakeAuthorizationProvider(name, identityField string) *Provider
Метод производит создания сущьности для работы провайдера авторизации
func (*SecureWorker) RefreshSessionTokens ¶ added in v0.13.0
func (sw *SecureWorker) RefreshSessionTokens(refreshToken string) (*UserTokenData, error)
Обновление токена пользователя для доступа к ресурсам
func (*SecureWorker) RefreshTokenHandler ¶ added in v0.13.0
func (sw *SecureWorker) RefreshTokenHandler(w http.ResponseWriter, r *http.Request)
Метод для обновления access_token'а пользователя на основе refresh_token'а получаемого одним из следующих методов
Header - Authorization: <refresh_token> Cookie - name "refresh_token" value <refresh_token> Query - named ?refresh_token=<refresh_token>
Метод возвращает структуру UserTokenData содержащую обновленные токены для пользователя
func (*SecureWorker) SetAuthorizationCookies ¶ added in v0.13.0
func (sw *SecureWorker) SetAuthorizationCookies(w http.ResponseWriter, userTokens *UserTokenData)