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.