account

package
v0.14.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 26, 2024 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Account

type Account struct {
	// contains filtered or unexported fields
}

func NewAccount

func NewAccount(db Database, collection string, response Response, providers ...Provider) *Account

func (*Account) CreateUserProfile

func (a *Account) CreateUserProfile(username, string, group string, provider string, providerData map[string]string) (*Profile, error)

Метод служит для создания пользовательского профиля в системе

func (*Account) DeleteUserProfile

func (a *Account) DeleteUserProfile(userID primitive.ObjectID) error

Метод служит для псевдо-удаления пользовательского профиля

!Важно так как пока пользовательский профиль существовал возможно, что были созданы его ссылки с другими документами, о которых данная структура знать не может, удаление пользовательского профиля лишь затирает чуствительные поля и запрещает пользователю производить какие-либо дополнительные действия

Так же будут удалены связи необходимые для авторизации пользователя с данным профилем в хранящиеся в документе

!ВАЖНО access_token следует удалить у пользователя самостоятельно, так как он будет действовать корректно в пределах своего срока жизни

func (*Account) Router

func (a *Account) Router(r chi.Router)

Метод производит подключение провайдеров авторизации к роутеру проекта

Из реализуемых внутри структуры Account роутов присутствуют /refresh - для обновления пользовательского токена /logout - для выхода пользователя из системы

далее по схеме создаются группы методов для каждого конкретного провайдера по схеме /{provider_name}/<методы реализованные у провайдера>

type Database

type Database interface {
	Operation(func(ctx context.Context, db *mongo.Database) error) error
}

type Profile

type Profile struct {
	ID       primitive.ObjectID `bson:"_id"`
	Group    string             `bson:"group"`
	Username string             `bson:"username"`
}

type Provider

type Provider interface {
	GetName() string
	GetRouter(r chi.Router)
}

type Response

type Response interface {
	secure.Response
}

Directories

Path Synopsis
provider

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL