Documentation
¶
Index ¶
- Constants
- Variables
- func AfterLogin(c *gin.Context, r AuthRender, user User)
- func DefaultErrorResponse(c *gin.Context, err error)
- func DefaultGetLoginHandler(c *gin.Context, p AuthProvider, r AuthRender)
- func DefaultJsonError(c *gin.Context, errMsg string)
- func DefaultJsonSuccess(c *gin.Context, data interface{})
- func DefaultLoginCallbackHandler(c *gin.Context, p AuthProvider, r AuthRender)
- func DefaultLogoutHandler(c *gin.Context, gAuth *GinAuth)
- func DefaultNotFoundHandler(c *gin.Context)
- func DefaultPostLoginHandler(c *gin.Context, p AuthProvider, r AuthRender)
- func GetRoleFromContext(c *gin.Context) string
- func NewGinHandler(h GinAuthHandler, a *GinAuth) func(c *gin.Context)
- func NewHandler(h func(c *gin.Context, a *GinAuth), a *GinAuth) func(c *gin.Context)
- type AuthProvider
- type AuthRender
- type AuthToken
- type Config
- type GinAuth
- func (a *GinAuth) AuthTokenMiddleware() func(c *gin.Context)
- func (a *GinAuth) GetDb() *gorm.DB
- func (a *GinAuth) GetProvider(name string) AuthProvider
- func (a *GinAuth) GetRender(name string) AuthRender
- func (a *GinAuth) HasProvider(name string) bool
- func (a *GinAuth) MountAuth() error
- func (a *GinAuth) RegisterProvider(p AuthProvider, r AuthRender) error
- type GinAuthHandler
- type GinAuthHandlers
- type Result
- type ResultType
- type Session
- type User
Constants ¶
View Source
const CtxKeyAuthUser = "AuthUser"
View Source
const CtxKeyErrorCode = "ErrorCode"
View Source
const CtxKeyGinAuth = "GinAuth"
View Source
const CtxKeyResultType = "ResultType"
View Source
const CtxKeyUserRole = "UserRole"
View Source
const DefaultErrorTokenInvalid = 2
Variables ¶
View Source
var (
ErrMissingResult = errors.New("接口未按要求返回结果")
)
Functions ¶
func AfterLogin ¶
func AfterLogin(c *gin.Context, r AuthRender, user User)
func DefaultErrorResponse ¶
func DefaultGetLoginHandler ¶
func DefaultGetLoginHandler(c *gin.Context, p AuthProvider, r AuthRender)
func DefaultJsonError ¶
func DefaultJsonSuccess ¶
func DefaultLoginCallbackHandler ¶
func DefaultLoginCallbackHandler(c *gin.Context, p AuthProvider, r AuthRender)
func DefaultLogoutHandler ¶
func DefaultNotFoundHandler ¶
func DefaultPostLoginHandler ¶
func DefaultPostLoginHandler(c *gin.Context, p AuthProvider, r AuthRender)
func NewGinHandler ¶
func NewGinHandler(h GinAuthHandler, a *GinAuth) func(c *gin.Context)
Types ¶
type AuthProvider ¶
type AuthProvider interface {
// 认证名称
GetName() string
// 注册时需要执行的
OnProviderRegister(a *GinAuth) error
// 登录引导
OnGuideLogin(c *gin.Context) error
// 登录账号
OnLogin(c *gin.Context) (User, error)
// 第三方登录回调
OnLoginCallback(c *gin.Context) (User, error)
OnLogout(c *gin.Context) (User, error)
}
认证必须实现的接口
type AuthRender ¶
type AuthRender interface {
// 注册时需要执行的
OnRenderRegister(a *GinAuth) error
// 错误渲染
Error(c *gin.Context) (*Result, error)
// 登录引导
GuideLogin(c *gin.Context) (*Result, error)
// 错误登录
FailLogin(c *gin.Context) (*Result, error)
// 成功登录
SuccessLogin(c *gin.Context, u User) (*Result, error)
// 登出账号
Logout(c *gin.Context) (*Result, error)
}
type Config ¶
type Config struct {
Path struct {
// Auth工具挂载的地址。如:/auth
Mount string
// Auth工具挂载的Web服务的站点基础路径。如:http://localhost:8090/api,主要用于构建回调地址用。
RootURL string
// 域名
Domain string
// 登录成功之后的跳转地址,如果需要的话
RedirectAfterLogin string
// Token写入cookie时使用名字
TokenKey string
// Token在头部请求时的名字
HeaderKey string
}
Response struct {
// 默认返回类型
DefaultResultType ResultType
NotFoundHandler func(c *gin.Context)
}
Core struct {
// 路由
Router *gin.Engine
// 数据库连接
DB *gorm.DB
// token管理
AuthToken AuthToken
// 用户存储
UserStore user_store.UserStoreInterface
// Session
Session Session
// 是否打开日志功能
LogMod bool
Logger log.Logger
}
}
type GinAuth ¶
type GinAuth struct {
Config Config
Handlers GinAuthHandlers
// contains filtered or unexported fields
}
func (*GinAuth) AuthTokenMiddleware ¶
func (*GinAuth) GetProvider ¶
func (a *GinAuth) GetProvider(name string) AuthProvider
func (*GinAuth) GetRender ¶
func (a *GinAuth) GetRender(name string) AuthRender
func (*GinAuth) HasProvider ¶
func (*GinAuth) RegisterProvider ¶
func (a *GinAuth) RegisterProvider(p AuthProvider, r AuthRender) error
type GinAuthHandler ¶
type GinAuthHandler func(c *gin.Context, p AuthProvider, r AuthRender)
type GinAuthHandlers ¶
type GinAuthHandlers struct {
GetLoginHandler GinAuthHandler
PostLoginHandler GinAuthHandler
LogoutHandler func(c *gin.Context, a *GinAuth)
LoginCallbackHandler GinAuthHandler
}
type Result ¶
type Result struct {
StatusCode int
RspType ResultType
Value interface{}
Key string
}
func NewJSONResult ¶
func NewJSONResult(v interface{}) *Result
func NewRedirectResult ¶
func NewStringResult ¶
func NewTmplResult ¶
func (*Result) GetStringValue ¶
type ResultType ¶
type ResultType string
const RspTypeJSON ResultType = "json"
const RspTypeRedirect ResultType = "redirect"
const RspTypeString ResultType = "html_string"
const RspTypeTmpl ResultType = "tmpl"
type Session ¶
type Session interface {
// 对一个request启动session,默认要检查csrf
StartSession(c *gin.Context, noCheckCsrf bool)
// 从session获取值
GetValue(c *gin.Context, key string) (v interface{}, exist bool)
// 按字符串格式读取一个session值
GetValueString(c *gin.Context, key string) string
// 写入session
SetValue(c *gin.Context, key string, v interface{})
// 移除值
DelValue(c *gin.Context, key string)
// 清空session
ClearSession(c *gin.Context)
}
Source Files
¶
Click to show internal directories.
Click to hide internal directories.