identity

package module
v0.7.11 Latest Latest
Warning

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

Go to latest
Published: Nov 24, 2021 License: MIT Imports: 12 Imported by: 0

README

identity-sdk

为 identity 提供 http api 支持

Documentation

Index

Constants

View Source
const (
	MfaTypeEnumSms   = "sms"
	MfaTypeEnumEmail = "email"
	MfaTypeEnumTotp  = "totp"
	MfaTypeEnumHotp  = "hotp"
)
View Source
const ErrorOk = 0

Variables

View Source
var FaceidKycResult = map[string]string{

	"1000:SUCCESS":         "待比对照片与参考数据照片或上传照片对比是同一个人",
	"1000:LIVENESS_FINISH": "活体完成",

	"1001:SUCCESS":                  "尚未进行活体认证",
	"1001:SUCCESS_BACKSIDE_SINGLE":  "只需识别国徽面时识别成功",
	"1001:SUCCESS_FRONTSIDE_SINGLE": "只需识别人像面时识别成功",

	"1002:SUCCESS_ALMOST_FRONTSIDE":        "识别出身份证国徽面没有问题,身份证人像面内容上存在没有识别出来、或者出来的内容存在逻辑问题、识别出来的内容存在质量问题",
	"1002:SUCCESS_ALMOST_BACKSIDE":         "识别出身份证人像面没有问题,身份证国徽面内容上存在没有识别出来、或者出来的内容存在逻辑问题、识别出来的内容存在质量问",
	"1002:SUCCESS_ALMOST_BOTHSIDE":         "识别出身份证人像面和国徽面内容上均存在没有识别出来、或者出来的内容存在逻辑问题、识别出来的内容存在质量问题",
	"1002:SUCCESS_ALMOST_BACKSIDE_SINGLE":  "只需识别国徽面时内容上存在没有识别出来、或者出来的内容存在逻辑问题、识别出来的内容存在质量问题",
	"1002:SUCCESS_ALMOST_FRONTSIDE_SINGLE": "只需识别人像面时内容上存在没有识别出来、或者出来的内容存在逻辑问题、识别出来的内容存在质量问题",
	"2001:NO_IDCARD_FRONTSIDE":             "没有检测到身份证人像面照片",
	"2001:NO_IDCARD_BACKSIDE":              "没有检测到身份证国徽面照片",
	"2001:NO_IDCARD_BOTHSIDE":              "没有检测到身份证人像面和国徽面照片",
	"2001:NO_IDCARD_BACKSIDE_SINGLE":       "只需识别国徽面时没有检测到国徽面照片",
	"2001:NO_IDCARD_FRONTSIDE_SINGLE":      "只需识别人像面时没有检测到人像面照片",
	"2000:PASS_LIVING_NOT_THE_SAME":        "待比对照片与参考数据照片或上传照片对比不是同一个人",
	"3000:NO_ID_CARD_NUMBER":               "无此身份证号",
	"3000:ID_NUMBER_NAME_NOT_MATCH":        "身份证号和姓名不相符",
	"3000:NO_ID_PHOTO":                     "无法获取参考照片",
	"3000:NO_FACE_FOUND":                   "参考照片中找不到人脸",
	"3000:PHOTO_FORMAT_ERROR":              "参考照片格式错误",
	"3000:DATA_SOURCE_ERROR":               "参考数据错误",
	"3100:IDCARD_PHOTO_FRONTSIDE":          "身份证人像面识别错误(可能是拍摄模糊,阴影,暗光)或者有逻辑错误(例如性别和身份证号不匹配)",
	"3100:IDCARD_BACKSIDE_BLURRED":         "身份证国徽面识别错误(可能是拍摄模糊,阴影,暗光)或者有逻辑错误(例如性别和身份证号不匹配)",
	"3100:NO_FACE_FOUND_IDCARD":            "身份证人像面找不到人脸",
	"3100:IDCARD_PHOTO_NOTFRONTSIDE":       "非身份证人像面",
	"3100:IDCARD_PHOTO_NOTBACKSIDE":        "非身份证国徽面",
	"3100:IDCARD_PHOTO_INVALID_SIZE":       "身份证图片超过尺寸限制",
	"3200:FAIL_OCR_FAKE_IDCARD":            "假证",

	"4100:FAIL_LIVING_FACE_ATTACK":   "云端活体验证失败",
	"4100:CHANGE_FACE_ATTACK":        "活体验证视频中发生了换脸攻击(视频中不是同一个人)",
	"4100:VIDEO_LACK_FRAMES":         "获取到的活体数据故障,请换一台手机重试",
	"4100:FAIL_EYES_CLOSE_DETECTION": "未通过闭眼检测,活体失败",
	"4200:NO_FACE_FOUND":             "活体验证视频中没有检测到人脸",
	"4200:FACE_QUALITY_TOO_LOW":      "活体验证视频中质量太差",
	"4200:INVALID_VIDEO_DURATION":    "活体验证视频中长度不符合要求(2s~20s)",
	"4200:VIDEO_TOO_LARGE":           "活体验证视频过大",
	"4200:SR_ERROR":                  "活体验证视频中,用户读数语音不符合要求",
	"4200:NOT_SYNCHRONIZED":          "活体验证视频中,用户读数唇语不符合要求",
	"4200:NO_AUDIO":                  "活体验证视频无声音",
	"4200:VIDEO_FORMAT_UNSUPPORTED":  "活体验证视频格式无法识别",
	"4200:LIP_VOICE_NOT_SYNC":        "活体验证视频中语音唇语不同步",
	"4200:VIDEO_OK":                  "活体验证视频可用",
	"4200:VIDEO_MANY_TIMES":          "活体验证视频上传超过阈值(默认为3,get_biz_token接口中liveness_retry_count参数可以设置)",
	"4200:VIDEO_INTERNAL_ERROR":      "活体验证内部错误",
	"4200:BIZ_TOKEN_DENIED":          "传入的 biz_token 不符合要求",
	"4200:AUTHENTICATION_FAIL":       "鉴权失败",
	"4200:MOBILE_PHONE_NOT_SUPPORT":  "手机在不支持列表里",
	"4200:SDK_TOO_OLD":               "SDK版本过旧,已经不被支持",
	"4200:MOBILE_PHONE_NO_AUTHORITY": "没有权限(运动传感器、存储、相机)",
	"4200:USER_CANCELLATION":         "用户活体失败,可能原因:用户取消了",
	"4200:USER_TIMEOUT":              "用户活体失败,可能原因:验证过程超时",
	"4200:VERIFICATION_FAILURE":      "用户活体失败,可能原因:验证失败",
	"4200:UNDETECTED_FACE":           "用户活体失败,可能原因:未检测到人脸",
	"4200:ACTION_ERROR":              "用户活体失败,可能原因:用户动作错误;",
	"9000:LIVING_NOT_START":          "活体验证没有开始",
	"9000:LIVING_IN_PROGRESS":        "正在进行验证",
	"9000:LIVING_OVERTIME":           "操作超时,由于用户在长时间没有进行操作",

	"5000:API_KEY_BE_DISCONTINUED":      "api_key被停用",
	"5000:IP_NOT_ALLOWED":               "不允许访问的IP",
	"5000:NON_ENTERPRISE_CERTIFICATION": "客户未进行企业认证",
	"5000:ACCOUNT_DISCONTINUED":         "用户帐号已停用",
	"5000:EXPIRED_SIGN":                 "签名过期",
	"5000:INVALID_SIGN":                 "无效的签名",
	"5000:REPLAY_ATTACK":                "重放攻击,单次有效的签名被多次使用",
	"5000:BALANCE_NOT_ENOUGH":           "余额不足",
	"5000:MORE_RETRY_TIMES":             "超过重试次数",
	"5000:ACCOUNT_DISABLED":             "账户已停用",

	"6000:NO_NETWORK_PERMISSION":  "没有网络权限",
	"6000:NO_CAMERA_PERMISSION":   "没有相机权限",
	"6000:DEVICE_NOT_SUPPORT":     "无法启动相机,请确认摄像头功能完好",
	"6000:ILLEGAL_PARAMETER":      "传入参数不合法",
	"6000:INVALID_BUNDLE_ID":      "信息验证失败,请重启程序或设备后重试",
	"6000:USER_CANCEL":            "用户主动退出流程",
	"6000:NETWORK_ERROR":          "连不上互联网,请连接上互联网后重试",
	"6000:FACE_INIT_FAIL":         "无法启动人脸识别,请稍后重试",
	"6000:LIVENESS_DETECT_FAILED": "活体检测不通过",
	"6000:NO_SENSOR_PERMISSION":   "无法读取运动数据的权限,请开启权限后重试",
	"6000:INIT_FAILED":            "初始化失败",
}

FaceidKycResult FaceidKycResult

View Source
var RequestIDKey = "X-Request-ID"

RequestIDKey RequestIDKey

Functions

func Client

func Client() *resty.Client

Client Client

func Execute

func Execute(request *resty.Request, method, url string, body interface{}, resp interface{}) error

Execute Execute

func GenRequestID added in v0.1.16

func GenRequestID(ctx context.Context) string

GenRequestID GenRequestID

func NewRequest added in v0.1.4

func NewRequest(ctx context.Context) *resty.Request

NewRequest NewRequest

func ParseResponse

func ParseResponse(r *resty.Response, obj interface{}) error

ParseResponse ParseResponse

Types

type AppError added in v0.2.17

type AppError struct {
	ErrorCode int    `json:"code"`
	ErrorMsg  string `json:"message"`
}

AppError AppError

func NewAppError added in v0.2.17

func NewAppError(msg string) *AppError

NewAppError NewAppError

func (*AppError) Error added in v0.2.18

func (err *AppError) Error() string

Error Error

type AppJWTPayload added in v0.2.9

type AppJWTPayload struct {
	jwtgo.StandardClaims

	UID           string         `json:"uid,omitempty"`
	Mode          string         `json:"mode,omitempty"`
	Scheme        AuthSchemeEnum `json:"scheme,omitempty"`
	OAuthProvider string         `json:"oap,omitempty"` //oap: OAuth Provider
	Type          AuthTypeEnum   `json:"typ,omitempty"`
	SessionID     string         `json:"sid,omitempty"`
	Sign          string         `json:"sig,omitempty"`
	SignAlg       string         `json:"sal,omitempty"`
	Extra         string         `json:"extra,omitempty"` // 额外的字段,可以存放 json 等非标数据
}

AppJWTPayload AppJWTPayload

type AppRequest added in v0.2.22

type AppRequest struct {
	AuthValue string `json:"auth"`
	ServerURL string `json:"host"`
}

AppRequest IdentityRequest

func NewAppRequestBasic added in v0.2.22

func NewAppRequestBasic(authKey, authSecret, serverURL string) *AppRequest

NewAppRequestBasic NewAppRequestBasic

func NewAppRequestJwt added in v0.2.22

func NewAppRequestJwt(token, serverURL string) *AppRequest

NewAppRequestJwt NewAppRequestJwt

func (AppRequest) AuthByFoxone added in v0.2.22

func (ir AppRequest) AuthByFoxone(ctx context.Context, authReq *FoxoneAuthReq) (*User, error)

AuthByFoxone AuthByFoxone

func (AppRequest) AuthByMixin added in v0.2.22

func (ir AppRequest) AuthByMixin(ctx context.Context, authReq *MixinAuthReq) (*User, error)

AuthByMixin AuthByMixin

func (AppRequest) AuthByWechat added in v0.7.0

func (ir AppRequest) AuthByWechat(ctx context.Context, authReq *WechatAuthReq) (*User, error)

AuthByFoxone AuthByFoxone

func (AppRequest) BatchGetUsers added in v0.5.3

func (ir AppRequest) BatchGetUsers(ctx context.Context, userIDs []uint64, profile, mixinAuth, foxAuth, wechatAuth bool, query ...string) ([]*User, error)

BatchGetUsers BatchGetUsers

func (AppRequest) BindAuth added in v0.4.0

func (ir AppRequest) BindAuth(ctx context.Context, req AuthBindingRequest) (*Authorization, error)

BindAuth BindAuth

func (AppRequest) ChangePassword added in v0.5.0

func (ir AppRequest) ChangePassword(ctx context.Context, userID uint64, oldPassword, newPassword string) (*User, error)

ChangePassword ChangePassword

func (AppRequest) ChangePhone added in v0.5.0

func (ir AppRequest) ChangePhone(ctx context.Context, req *UserModifyReq) (*User, error)

ChangePhone ChangePhone

func (AppRequest) CreateUser added in v0.2.22

func (ir AppRequest) CreateUser(ctx context.Context, req *CreateUserReq) (*User, error)

CreateUser CreateUser

func (AppRequest) GenMfaPhoneCode added in v0.4.0

func (ir AppRequest) GenMfaPhoneCode(ctx context.Context, authReq *PhoneCodeVerifyRequest) (string, error)

GenMfaPhoneCode GenMfaPhoneCode

func (AppRequest) GenMfaToken added in v0.6.1

func (ir AppRequest) GenMfaToken(ctx context.Context, userID uint64) (string, error)

GenMfaToken GenMfaToken

func (AppRequest) GenToken added in v0.2.22

func (ir AppRequest) GenToken(ctx context.Context, req *TokenCreateRequest) (*Token, error)

GenToken GenToken

func (AppRequest) GetAllUsers added in v0.2.22

func (ir AppRequest) GetAllUsers(ctx context.Context) ([]*User, error)

GetAllUsers GetAllUsers

func (AppRequest) GetApp added in v0.2.22

func (ir AppRequest) GetApp(ctx context.Context) (*Application, error)

GetApp GetApp

func (AppRequest) GetAuthByOAuthID added in v0.2.22

func (ir AppRequest) GetAuthByOAuthID(ctx context.Context, provider AuthProviderTypeEnum, oauthID string) (*Authorization, error)

GetAuthByOAuthID GetAuthByOAuthID

func (AppRequest) GetAuthorizedKey added in v0.7.2

func (ir AppRequest) GetAuthorizedKey(ctx context.Context, authKey string) (*AuthorizedKey, error)

GetAuthorizedKey GetAuthorizedKey

func (AppRequest) GetAuths added in v0.2.22

func (ir AppRequest) GetAuths(ctx context.Context, provider string, offset, limit int) (*AuthorizationList, error)

GetAuths GetAuths

func (AppRequest) GetAuthsByOAuthIDs added in v0.5.2

func (ir AppRequest) GetAuthsByOAuthIDs(ctx context.Context, provider AuthProviderTypeEnum, oauthIDs []string) ([]*Authorization, error)

GetAuthsByOAuthIDs GetAuthsByOAuthIDs

func (AppRequest) GetHHBizToken added in v0.2.22

func (ir AppRequest) GetHHBizToken(ctx context.Context, userID uint64, returnURL string) (string, error)

GetHHBizToken GetHHBizToken

func (AppRequest) GetUser added in v0.2.22

func (ir AppRequest) GetUser(ctx context.Context, userID uint64, profile, mixinAuth, foxAuth bool, wechatAuth bool, queries ...string) (*User, error)

GetUser GetUser

func (AppRequest) GetUserByPhone added in v0.3.8

func (ir AppRequest) GetUserByPhone(ctx context.Context, phoneCode, phoneNumber string) (*User, error)

GetUserByPhone GetUser

func (AppRequest) GetZDBizToken added in v0.2.22

func (ir AppRequest) GetZDBizToken(ctx context.Context, userID uint64, returnURL string) (string, error)

GetZDBizToken GetZDBizToken

func (AppRequest) Login added in v0.6.0

func (ir AppRequest) Login(ctx context.Context, req *LoginRequest) (*User, error)

Login Login

func (AppRequest) RemoveMfa added in v0.6.5

func (ir AppRequest) RemoveMfa(ctx context.Context, userID uint64) (bool, error)

UpdateMfa UpdateMfa

func (AppRequest) RemoveToken added in v0.7.5

func (ir AppRequest) RemoveToken(ctx context.Context, userID uint64) error

RemoveToken RemoveToken

func (AppRequest) SetPassword added in v0.6.7

func (ir AppRequest) SetPassword(ctx context.Context, userID uint64, password string) (*User, error)

SetPassword SetPassword

func (AppRequest) TwoFactorVerify added in v0.6.0

func (ir AppRequest) TwoFactorVerify(ctx context.Context, req *TwoFactorRequest) (*User, error)

TwoFactorVerify TwoFactorVerify

func (AppRequest) UnbindAuth added in v0.4.0

func (ir AppRequest) UnbindAuth(ctx context.Context, userID uint64, provider AuthProviderTypeEnum) error

UnbindAuth BindAuth

func (AppRequest) UpdateMfa added in v0.6.5

func (ir AppRequest) UpdateMfa(ctx context.Context, req *MfaCredentialRequest) (*MfaCredential, error)

UpdateMfa UpdateMfa

func (AppRequest) VerifyMfaPhoneCode added in v0.4.0

func (ir AppRequest) VerifyMfaPhoneCode(ctx context.Context, verifyReq *PhoneCodeVerifyRequest) (*User, error)

VerifyMfaPhoneCode VerifyMfaPhoneCode

func (AppRequest) VerifyUserPassword added in v0.3.8

func (ir AppRequest) VerifyUserPassword(ctx context.Context, userID uint64, password string) (*User, error)

VerifyUserPassword VerifyUserPassword

type AppStatusEnum added in v0.2.22

type AppStatusEnum string

AppStatusEnum 枚举

const (
	// AppStatusEnumNormal 正常
	AppStatusEnumNormal AppStatusEnum = "normal"
	// AppStatusEnumDisabled 下架
	AppStatusEnumDisabled AppStatusEnum = "disabled"
)

func (AppStatusEnum) String added in v0.2.22

func (e AppStatusEnum) String() string

type Application added in v0.2.22

type Application struct {
	ID          uint32        `json:"app_id" `
	Name        string        `json:"name"`
	Slug        string        `json:"slug"`
	CreatorID   uint64        `json:"creator_id"`
	Description string        `json:"description"`
	Status      AppStatusEnum `json:"status"`
	CreatedAt   time.Time
	UpdatedAt   time.Time
}

Application Application

type AuthBindingRequest added in v0.4.0

type AuthBindingRequest struct {
	UserID      uint64               `json:"user_id"`
	Provider    AuthProviderTypeEnum `json:"provider"`
	OauthID     string               `json:"oauth_id" `
	UnionID     string               `json:"union_id" `
	Credential  string               `json:"credential"`
	AppUserName string               `json:"app_user_name"`
	AppUserID   string               `json:"app_user_id"`
}

AuthBindingRequest auth 绑定

type AuthListRequest added in v0.2.0

type AuthListRequest struct {
	Offset   uint64               `json:"offset" `
	Limit    uint64               `json:"limit"`
	Provider AuthProviderTypeEnum `json:"provider"`
}

AuthListRequest 用户表求

type AuthObject added in v0.2.14

type AuthObject struct {
	MixinAuth  *MixinAuth  `json:"mixin,omitempty"`
	FoxAuth    *FoxAuth    `json:"foxone,omitempty"`
	WechatAuth *WechatAuth `json:"wechat,omitempty"`
}

AuthObject Auths

type AuthProviderTypeEnum added in v0.2.0

type AuthProviderTypeEnum string

AuthProviderTypeEnum 枚举

const (
	// AuthProviderTypeEnumMixin offer
	AuthProviderTypeEnumMixin AuthProviderTypeEnum = "mixin"
	// AuthProviderTypeEnumFoxone order
	AuthProviderTypeEnumFoxone AuthProviderTypeEnum = "foxone"
	// AuthProviderTypeEnumWechat wechat
	AuthProviderTypeEnumWechat AuthProviderTypeEnum = "wechat"
	// AuthProviderTypeEnumAlipay alipay
	AuthProviderTypeEnumAlipay AuthProviderTypeEnum = "alipay"
)

func (AuthProviderTypeEnum) String added in v0.2.0

func (e AuthProviderTypeEnum) String() string

type AuthSchemeEnum added in v0.2.8

type AuthSchemeEnum string

AuthSchemeEnum 枚举

const (
	// AuthSchemeEnumBasic basic
	AuthSchemeEnumBasic AuthSchemeEnum = "basic"
	// AuthSchemeEnumDigest digest
	AuthSchemeEnumDigest AuthSchemeEnum = "digest"
	// AuthSchemeEnumJWTHS jwt_hs
	AuthSchemeEnumJWTHS AuthSchemeEnum = "jwths"
	// AuthSchemeEnumJWTRS jwt_rs
	AuthSchemeEnumJWTRS AuthSchemeEnum = "jwtrs"
	// AuthSchemeEnumJWTES jwt_es
	AuthSchemeEnumJWTES AuthSchemeEnum = "jwtes"
)

func (AuthSchemeEnum) String added in v0.2.8

func (e AuthSchemeEnum) String() string

type AuthTypeEnum added in v0.2.8

type AuthTypeEnum string

AuthTypeEnum 枚举

const (
	// AuthTypeEnumUser user
	AuthTypeEnumUser AuthTypeEnum = "user"
	// AuthTypeEnumApp app
	AuthTypeEnumApp AuthTypeEnum = "app"
	// AuthTypeEnumAppuser appuser
	AuthTypeEnumAppuser AuthTypeEnum = "appuser"
	// AuthTypeEnumSystem system
	AuthTypeEnumSystem AuthTypeEnum = "system"
	// AuthTypeEnumRefresh refresh
	AuthTypeEnumRefresh AuthTypeEnum = "refresh"
)

func (AuthTypeEnum) String added in v0.2.8

func (e AuthTypeEnum) String() string

type Authorization added in v0.2.14

type Authorization struct {
	ID         uint64               `json:"id"`
	UserID     uint64               `json:"user_id"`
	AppID      uint32               `json:"app_id"`
	Provider   AuthProviderTypeEnum `json:"provider"`
	OauthID    string               `json:"oauth_id"`
	UnionID    string               `json:"union_id"`
	AppUserID  string               `json:"app_user_id"`
	Credential string               `json:"credential"`
	CreatedAt  time.Time            `json:"created_at"`
	UpdatedAt  time.Time            `json:"updated_at"`
}

Authorization Authorization

type AuthorizationList added in v0.2.14

type AuthorizationList struct {
	Data       []*Authorization `json:"data"`
	Pagination Pagination       `json:"pagination"`
}

AuthorizationList AuthorizationList

type AuthorizedKey added in v0.7.2

type AuthorizedKey struct {
	ID        uint64         `json:"id"`
	Name      string         `json:"name"`
	AppID     uint32         `json:"app_id"`
	UserID    uint64         `json:"user_id"`
	Type      AuthTypeEnum   `json:"type"`
	Scheme    AuthSchemeEnum `json:"scheme"`
	Scopes    string         `json:"scopes"`
	Key       string         `json:"auth_key"`
	Secret    string         `json:"-"`
	Remark    string         `json:"remark"`
	ExpriedAt *time.Time     `json:"expried_at"`
	CreatedAt time.Time      `json:"created_at"`
}

AuthorizedKey AuthorizedKey

type BasePageResponse added in v0.3.8

type BasePageResponse struct {
	Items      []interface{} `json:"data"`
	Pagination *Pagination   `json:"pagination"`
}

BasePageResponse BasePageResponse

type CaptchaTypeEnum added in v0.6.6

type CaptchaTypeEnum string

CaptchaTypeEnum CaptchaTypeEnum

const (
	// CaptchaTypeEnumLogin offer
	CaptchaTypeEnumLogin     CaptchaTypeEnum = "login"
	CaptchaTypeEnumReg       CaptchaTypeEnum = "reg"
	CaptchaTypeEnumTwoFactor CaptchaTypeEnum = "two-factor"
)

func (CaptchaTypeEnum) String added in v0.6.6

func (e CaptchaTypeEnum) String() string

type CreateUserReq

type CreateUserReq struct {
	UserName    string `json:"username"`
	Type        string `json:"type"`
	PhoneCode   string `json:"phone_code"`
	PhoneNumber string `json:"phone_number"`
	Email       string `json:"email"`
	Password    string `json:"password"`
	AvatarURL   string `json:"avatar_url"`
	Description string `json:"description"`
}

CreateUserReq CreateUserReq

type FoxAuth added in v0.2.14

type FoxAuth struct {
	UserID     uint64            `json:"user_id"`
	Provider   string            `json:"provider"`
	OauthID    string            `json:"oauth_id"`
	FoxID      string            `json:"foxone_id"`
	UserName   string            `json:"user_name"`
	Credential *FoxoneCredential `json:"credential"`
	CreatedAt  time.Time         `json:"created_at"`
	UpdatedAt  time.Time         `json:"updated_at"`
}

FoxAuth FoxAuth

type FoxoneAuthReq

type FoxoneAuthReq struct {
	UserName    string `json:"username"`
	PhoneCode   string `json:"phone_code"`
	PhoneNumber string `json:"phone_number"`
	Email       string `json:"email"`
	Description string `json:"description"`
	Provider    string `json:"provider"`
	FoxoneID    string `json:"foxone_id"`
	OauthID     string `json:"oauth_id"`
	Credential  string `json:"credential"`
	AvatarURL   string `json:"avatar_url"`
}

FoxoneAuthReq FoxoneAuthReq

type FoxoneCredential added in v0.2.16

type FoxoneCredential struct {
	AccessToken  string `json:"access_token"`
	Scope        string `json:"scope"`
	ExpiresIn    int    `json:"expires_in,omitempty"`
	RefreshToken string `json:"refresh_token,omitempty"`
}

FoxoneCredential FoxoneCredential

type IDTypeEnum added in v0.7.7

type IDTypeEnum string

IDTypeEnum 证件类型 枚举

const (
	// IDTypeEnumIDCard 身份证
	IDTypeEnumIDCard IDTypeEnum = "idcard"
	// IDTypeEnumDriverLicense 驾照
	IDTypeEnumDriverLicense IDTypeEnum = "driverlicense"
	// IDTypeEnumPassport 护照
	IDTypeEnumPassport IDTypeEnum = "passport"
	// IDTypeEnumPermanentResident 户口本
	IDTypeEnumPermanentResident IDTypeEnum = "permanentresident"
	// IDTypeEnumForeign 外国人永久居留证
	IDTypeEnumForeign IDTypeEnum = "foreign"
	// IDTypeEnumArmymanCard 军人证
	IDTypeEnumArmymanCard IDTypeEnum = "armymancard"
	// IDTypeEnumPoliceCard 武警证
	IDTypeEnumPoliceCard IDTypeEnum = "policecard"
	// IDTypeEnumCachet 公章
	IDTypeEnumCachet IDTypeEnum = "cachet"
	// IDTypeEnumBusinessLicense 工商营业执照
	IDTypeEnumBusinessLicense IDTypeEnum = "businesslicense"
	// IDTypeEnumCorporationID 法人代码证
	IDTypeEnumCorporationID IDTypeEnum = "corporationid"
	// IDTypeEnumStudentCard 学生证
	IDTypeEnumStudentCard IDTypeEnum = "studentcard"
	// IDTypeEnumSoldierCard 士兵证
	IDTypeEnumSoldierCard IDTypeEnum = "soldiercard"
	// IDTypeEnumGAJMLW 港澳居民来往内地通行证
	IDTypeEnumGAJMLW IDTypeEnum = "gajmlw"
	// IDTypeEnumTWJMLW 台湾居民来往大陆通行证
	IDTypeEnumTWJMLW IDTypeEnum = "twjmlw"
)

type KycBizTokenRequest added in v0.1.9

type KycBizTokenRequest struct {
	UserID    string `json:"user_id"`
	ReturnURL string `json:"return_url"`
}

KycBizTokenRequest KycBizTokenRequest

type KycSyncRequest added in v0.1.4

type KycSyncRequest struct {
	UserID      uint64     `json:"user_id"`
	KycLevel    int        `json:"kyc_level"`
	KycStatus   string     `json:"kyc_status"`
	KycError    string     `json:"kyc_error"`
	CertifiedAt *time.Time `json:"certified_at"`
	IDNo        string     `json:"id_no"`
	Name        string     `json:"name"`
	Country     string     `json:"country"`
	IDType      string     `json:"id_type"`
}

KycSyncRequest KycSyncRequest

type LoginRequest

type LoginRequest struct {
	ID          uint64 `json:"id"`
	PhoneCode   string `json:"phone_code"`
	PhoneNumber string `json:"phone_number"`
	Email       string `json:"email"`
	Password    string `json:"password"`

	LoginType LoginTypeEnum `json:"login_type"`
	Captcha   string        `json:"captcha"`
}

LoginRequest LoginRequest

type LoginTypeEnum added in v0.6.0

type LoginTypeEnum string
const (
	LoginTypeEnumPassword LoginTypeEnum = "password"
	LoginTypeEnumPhone    LoginTypeEnum = "phone"
	LoginTypeEnumEmail    LoginTypeEnum = "email"
)

func (LoginTypeEnum) String added in v0.6.0

func (e LoginTypeEnum) String() string

type MfaCredential added in v0.6.0

type MfaCredential struct {
	Type            MfaTypeEnum `json:"type"`
	Enable          bool        `json:"enable"`
	ProvisioningUri string      `json:"provisioning_uri,omitempty"`
}

MfaCredentialResponse MfaCredentialResponse

type MfaCredentialRequest added in v0.6.5

type MfaCredentialRequest struct {
	UserID      uint64      `json:"user_id"`
	MfaType     MfaTypeEnum `json:"mfa_type"`
	AccountName string      `json:"account_name"`
	IssuerName  string      `json:"issuer_name"`
}

MfaCredentialRequest MfaCredentialRequest

type MfaTypeEnum added in v0.6.0

type MfaTypeEnum string

func (MfaTypeEnum) String added in v0.6.0

func (e MfaTypeEnum) String() string

type MixinAuth added in v0.2.14

type MixinAuth struct {
	UserID     uint64           `json:"user_id"`
	AppID      uint32           `json:"app_id"`
	Provider   string           `json:"provider"`
	OauthID    string           `json:"oauth_id"`
	MixinID    string           `json:"mixin_id"`
	UserName   string           `json:"user_name"`
	Credential *MixinCredential `json:"credential"`
	CreatedAt  time.Time        `json:"created_at"`
	UpdatedAt  time.Time        `json:"updated_at"`
}

MixinAuth MixinAuth

type MixinAuthReq

type MixinAuthReq struct {
	UserName    string `json:"username"`
	PhoneCode   string `json:"phone_code"`
	PhoneNumber string `json:"phone_number"`
	Email       string `json:"email"`
	Description string `json:"description"`
	Provider    string `json:"provider"`
	MixinID     string `json:"mixin_id"`
	OauthID     string `json:"oauth_id"`
	Credential  string `json:"credential"`
	AvatarURL   string `json:"avatar_url"`
}

MixinAuthReq MixinAuthReq

type MixinCredential added in v0.2.16

type MixinCredential struct {
	mixin.EdOToken
	Type        MixinCredentialTypeEnum `json:"type,omitempty"`
	AccessToken string                  `json:"access_token,omitempty"` // token
}

MixinCredential MixinCredential

func NewMixinEdkeyCredential added in v0.3.5

func NewMixinEdkeyCredential(edoToken *mixin.EdOToken) *MixinCredential

NewMixinEdkeyCredential NewMixinEdkeyCredential

func NewMixinTokenCredential added in v0.3.1

func NewMixinTokenCredential(accessToken, scope string) *MixinCredential

NewMixinTokenCredential NewMixinTokenCredentialReq

type MixinCredentialTypeEnum added in v0.3.0

type MixinCredentialTypeEnum string

MixinCredentialTypeEnum 枚举

const (
	// MixinCredentialTypeEnumEdkey edkey
	MixinCredentialTypeEnumEdkey MixinCredentialTypeEnum = "edkey"
	// MixinCredentialTypeEnumToken token
	MixinCredentialTypeEnumToken MixinCredentialTypeEnum = "token"
)

func (MixinCredentialTypeEnum) String added in v0.3.0

func (e MixinCredentialTypeEnum) String() string

type Pagination added in v0.2.5

type Pagination struct {
	Offset uint64 `json:"offset,omitempty"`
	Page   uint64 `json:"page,omitempty"`
	Limit  uint64 `json:"limit,omitempty"`
	Total  uint64 `json:"total,omitempty"`
	Pages  uint64 `json:"pages,omitempty"`
}

Pagination Pagination

func NewOffsetPagination added in v0.3.8

func NewOffsetPagination(offset, limit, total uint64) *Pagination

NewOffsetPagination NewPagination

func NewPagePagination added in v0.3.8

func NewPagePagination(page, limit, total uint64) *Pagination

NewPagePagination NewPagination

type PermissionRequest added in v0.7.0

type PermissionRequest struct {
	Object  string `json:"obj"`
	Action  string `json:"act"`
	Subject string `json:"sub"`
	Domain  string `json:"dom"`
}

type PhoneCodeVerifyRequest added in v0.4.0

type PhoneCodeVerifyRequest struct {
	PhoneCode   string          `json:"phone_code"`
	PhoneNumber string          `json:"phone_number"`
	CaptchaType CaptchaTypeEnum `json:"captcha_type"`
	Code        string          `json:"code"`
}

PhoneCodeVerifyRequest PhoneCodeVerifyRequest

type Profile added in v0.1.4

type Profile struct {
	UserID        uint64     `json:"user_id"`
	Name          string     `json:"name,omitempty"`
	KycLevel      int        `json:"kyc_level,omitempty"`
	KycStatus     string     `json:"kyc_status,omitempty"`
	KycError      string     `json:"kyc_error,omitempty"`
	IDDigest      string     `json:"id_digest,omitempty"`
	IDType        IDTypeEnum `json:"id_type,omitempty"`
	IDNoEncrypted string     `json:"id_no_encrypted,omitempty"`
	CertifiedAt   time.Time  `json:"certified_at"`
}

Profile profile

type Token added in v0.2.14

type Token struct {
	AppID        uint32         `json:"app_id,omitempty"`
	UserID       uint64         `json:"user_id,omitempty"`
	Type         AuthTypeEnum   `json:"type,omitempty"`
	Scheme       AuthSchemeEnum `json:"scheme,omitempty"`
	Provider     string         `json:"oap,omitempty"`
	Key          string         `json:"sid,omitempty"`
	ExpriedAt    *time.Time     `json:"expried_at,omitempty"`
	Token        string         `json:"token,omitempty"`
	RefreshToken string         `json:"refresh_token,omitempty"`
}

Token profile

type TokenCreateRequest added in v0.2.8

type TokenCreateRequest struct {
	Type   AuthTypeEnum   `json:"type"`
	Scheme AuthSchemeEnum `json:"scheme"`

	Audience  string `json:"aud,omitempty"` // 这个表示 UIAM_ID
	Issuer    string `json:"iss,omitempty"`
	NotBefore int64  `json:"nbf,omitempty"`
	Subject   string `json:"sub,omitempty"`

	// Custom
	Provider  string `json:"oap"` // Mixin / FoxONE
	UID       string `json:"uid"` // 这个 UID 表示的是第三方系统的 ID,像 ZOTC 里的那个自己的
	SessionID string `json:"sid"`
	Sign      string `json:"sig"`
	SignAlg   string `json:"sal"`

	// ExpriedAt
	Duration        time.Duration `json:"duration"`         //  有效时长
	RefreshDuration time.Duration `json:"refresh_duration"` //  刷新有效时长
}

TokenCreateRequest TokenCreateRequest

type TwoFactorRequest added in v0.6.0

type TwoFactorRequest struct {
	UserID   uint64      `json:"user_id"`
	MfaToken string      `json:"mfa_token"`
	MfaType  MfaTypeEnum `json:"mfa_type"`
	Captcha  string      `json:"captcha"`
}

TwoFactorRequest TwoFactorRequest

type User

type User struct {
	UserID      uint64 `mapstructure:"id" json:"id"`
	UserName    string `mapstructure:"user_name" json:"user_name"`
	PhoneCode   string `mapstructure:"phone_code" json:"phone_code"`
	PhoneNumber string `mapstructure:"phone_number" json:"phone_number"`
	//MfaCredential *MfaCredential `mapstructure:"mfa_credential" json:"mfa_credential"`
	Email       string      `mapstructure:"email" json:"email"`
	Description string      `mapstructure:"description" json:"description"`
	Attributes  string      `mapstructure:"attributes" json:"attributes"`
	Auths       *AuthObject `mapstructure:"authorizations" json:"authorizations,omitempty"`
	Profile     *Profile    `mapstructure:"profile" json:"profile,omitempty"`
	Status      string      `mapstructure:"status" json:"status"`
	CreatedAt   time.Time   `mapstructure:"created_at" json:"created_at"`
}

User User

type UserModifyReq added in v0.5.0

type UserModifyReq struct {
	UserID      uint64 `json:"user_id"`
	UserName    string `json:"username"`
	Type        string `json:"type"`
	PhoneCode   string `json:"phone_code"`
	PhoneNumber string `json:"phone_number"`
	Email       string `json:"email"`
	Password    string `json:"password"`
	AvatarURL   string `json:"avatar_url"`
	Description string `json:"description"`
}

UserModifyReq UserModifyReq

type UserRequest added in v0.2.0

type UserRequest struct {
	Authorization string `json:"token"`
	ServerURL     string `json:"server_url"`
}

UserRequest UserRequest

func NewUserRequestJwt added in v0.2.0

func NewUserRequestJwt(token, serverURL string) *UserRequest

NewUserRequestJwt NewUserRequestJwt

func (UserRequest) GetUser added in v0.2.22

func (r UserRequest) GetUser(ctx context.Context, profile, mixinAuth, foxAuth bool) (*User, error)

GetUser GetUser

type WechatAuth added in v0.5.2

type WechatAuth struct {
	UserID     uint64            `json:"user_id"`
	AppID      uint32            `json:"app_id"`
	Provider   string            `json:"provider"`
	OauthID    string            `json:"oauth_id"`
	UnionID    string            `json:"union_id"`
	UserName   string            `json:"user_name"`
	Credential *WechatCredential `json:"credential"`
	CreatedAt  time.Time         `json:"created_at"`
	UpdatedAt  time.Time         `json:"updated_at"`
}

WechatAuth WechatAuth

type WechatAuthReq added in v0.7.0

type WechatAuthReq struct {
	UserName    string `json:"username"`
	PhoneCode   string `json:"phone_code" binding:"required,min=1"`
	PhoneNumber string `json:"phone_number" binding:"required,min=4"`
	AvatarURL   string `json:"avatar_url"`
	Description string `json:"description"`
	OauthID     string `json:"oauth_id" binding:"required,min=4"`
	UnionID     string `json:"union_id"`
	Credential  string `json:"credential"`
}

WechatAuthReq WechatAuthReq

type WechatCredential added in v0.5.2

type WechatCredential struct {
	AccessToken  string `json:"access_token"`
	Scope        string `json:"scope"`
	ExpiresIn    int    `json:"expires_in,omitempty"`
	RefreshToken string `json:"refresh_token,omitempty"`
}

WechatCredential WechatCredential

Jump to

Keyboard shortcuts

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