application

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Jul 11, 2020 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// AdminWebApplicationName 颁发给后台管理Web端的凭证
	AdminWebApplicationName = "admin-web"
	// AdminServiceApplicationName 颁发给服务管理的应用凭证
	AdminServiceApplicationName = "admin-micro"
)
View Source
const (
	// DefaultAccessTokenExpireSecond token默认过期时长
	DefaultAccessTokenExpireSecond = 3600
	// DefaultRefreshTokenExpiredSecond 刷新token默认过期时间
	DefaultRefreshTokenExpiredSecond = DefaultAccessTokenExpireSecond * 4
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AdminInterface

type AdminInterface interface {
	CreateBuildInApplication(req *CreateApplicatonRequest) (*Application, error)
	GetBuildInApplication(name string) (*Application, error)
}

AdminInterface todo

type Application

type Application struct {
	ID                       string     `bson:"_id" json:"id,omitempty"`                      // 唯一ID
	BuildIn                  bool       `bson:"build_in" json:"build_in"`                     // 是否是内建应用
	DomainID                 string     `bosn:"domain_id" json:"domain_id,omitempty"`         // 所处于域
	UserID                   string     `bson:"user_id" json:"user_id,omitempty"`             // 应用属于那个用户
	CreateAt                 ftime.Time `bson:"create_at" json:"create_at,omitempty"`         // 应用创建的时间
	UpdateAt                 ftime.Time `bson:"update_at" json:"update_at,omitempty"`         // 应用更新的时间
	ClientID                 string     `bson:"client_id" json:"client_id,omitempty"`         // 应用客户端ID
	ClientSecret             string     `bson:"client_secret" json:"client_secret,omitempty"` // 应用客户端秘钥
	Locked                   bool       `bson:"locked" json:"locked,omitempty"`               // 是否冻结应用, 冻结应用后, 该应用无法通过凭证获取访问凭证(token)
	*CreateApplicatonRequest `bson:",inline"`
}

Application is oauth2's client: https://tools.ietf.org/html/rfc6749#section-2

func NewBuildInApplication

func NewBuildInApplication(userID string, req *CreateApplicatonRequest) (*Application, error)

NewBuildInApplication 构建内建应用

func NewUserApplicartion

func NewUserApplicartion(userID string, req *CreateApplicatonRequest) (*Application, error)

NewUserApplicartion 新建实例

func (*Application) CheckClientSecret

func (a *Application) CheckClientSecret(secret string) error

CheckClientSecret 判断凭证是否合法

type ClientType

type ClientType string

ClientType 客户端类型

const (
	// Confidential (server-based) https://tools.ietf.org/html/rfc6749#section-2.1
	Confidential ClientType = "confidential"
	// Public (client-based)
	Public ClientType = "public"
)

type CreateApplicatonRequest

type CreateApplicatonRequest struct {
	*token.Session            `bson:"-" json:"-"`
	Name                      string     `bson:"name" json:"name,omitempty" validate:"required,lte=30"`          // 应用名称
	Website                   string     `bson:"website" json:"website,omitempty" validate:"lte=200"`            // 应用的网站地址
	LogoImage                 string     `bson:"logo_image" json:"logo_image,omitempty" validate:"lte=200"`      // 应用的LOGO
	Description               string     `bson:"description" json:"description,omitempty" validate:"lte=1000"`   // 应用简单的描述
	RedirectURI               string     `bson:"redirect_uri" json:"redirect_uri,omitempty" validate:"lte=200"`  // 应用重定向URI, Oauht2时需要该参数
	AccessTokenExpireSecond   int64      `bson:"access_token_expire_second" json:"access_token_expire_second"`   // 应用申请的token的过期时间
	RefreshTokenExpiredSecond int64      `bson:"refresh_token_expire_second" json:"refresh_token_expire_second"` // 刷新token过期时间
	ClientType                ClientType `bson:"client_type" json:"client_type,omitempty"`                       // 客户端类型
}

CreateApplicatonRequest 创建应用请求

func NewCreateApplicatonRequest

func NewCreateApplicatonRequest() *CreateApplicatonRequest

NewCreateApplicatonRequest 请求

func (*CreateApplicatonRequest) Validate

func (req *CreateApplicatonRequest) Validate() error

Validate 请求校验

type DescriptApplicationRequest

type DescriptApplicationRequest struct {
	*token.Session
	ID       string `json:"id,omitempty"`
	ClientID string `json:"client_id,omitempty"`
}

DescriptApplicationRequest 查询应用详情

func NewDescriptApplicationRequest

func NewDescriptApplicationRequest() *DescriptApplicationRequest

NewDescriptApplicationRequest new实例

func (*DescriptApplicationRequest) Validate

func (req *DescriptApplicationRequest) Validate() error

Validate 校验详情查询请求

type QueryApplicationRequest

type QueryApplicationRequest struct {
	*request.PageRequest
	UserID  string
	Account string
}

QueryApplicationRequest 查询应用列表

func NewQueryApplicationRequest

func NewQueryApplicationRequest(pageReq *request.PageRequest) *QueryApplicationRequest

NewQueryApplicationRequest 列表查询请求

type Service

type Service interface {
	UserInterface
	AdminInterface
}

Service 用户服务

type Set

type Set struct {
	*request.PageRequest

	Total int64          `json:"total"`
	Items []*Application `json:"items"`
}

Set 应用列表

func NewApplicationSet

func NewApplicationSet(req *request.PageRequest) *Set

NewApplicationSet 实例化

func (*Set) Add

func (s *Set) Add(app *Application)

Add 添加应用

type UserInterface

type UserInterface interface {
	CreateUserApplication(req *CreateApplicatonRequest) (*Application, error)
	DeleteApplication(id string) error
	DescriptionApplication(req *DescriptApplicationRequest) (*Application, error)
	QueryApplication(req *QueryApplicationRequest) (*Set, error)
}

UserInterface todo

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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