当前位置: 首页>>代码示例>>Golang>>正文


Golang Database.Tokens方法代码示例

本文整理汇总了Golang中github.com/pritunl/pritunl-auth/database.Database.Tokens方法的典型用法代码示例。如果您正苦于以下问题:Golang Database.Tokens方法的具体用法?Golang Database.Tokens怎么用?Golang Database.Tokens使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在github.com/pritunl/pritunl-auth/database.Database的用法示例。


在下文中一共展示了Database.Tokens方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: Authorize

func (o *Oauth2) Authorize(db *database.Database, state, code string) (
	acct *account.Account, tokn *Token, err error) {

	coll := db.Tokens()
	tokn = &Token{}

	err = coll.FindOneId(state, tokn)
	if err != nil {
		err = database.ParseError(err)
		return
	}

	accessTokn, err := o.conf.Exchange(oauth2.NoContext, code)
	if err != nil {
		err = &errortypes.UnknownError{
			errors.Wrap(err, "oauth.oauth2: Unknown api error"),
		}
		return
	}

	acct = &account.Account{
		Type:          o.Type,
		Oauth2AccTokn: accessTokn.AccessToken,
		Oauth2RefTokn: accessTokn.RefreshToken,
		Oauth2Exp:     accessTokn.Expiry,
	}

	return
}
开发者ID:postfix,项目名称:pritunl-auth,代码行数:29,代码来源:oauth2.go

示例2: Authorize

func Authorize(db *database.Database, state, respEncoded string) (
	data *UserData, tokn *Token, err error) {

	tokn = &Token{}
	coll := db.Tokens()
	err = coll.FindOne(&bson.M{
		"_id":  state,
		"type": "saml",
	}, tokn)
	if err != nil {
		err = database.ParseError(err)
		return
	}

	sml := &Saml{
		SsoUrl:    tokn.SsoUrl,
		IssuerUrl: tokn.IssuerUrl,
		Cert:      tokn.Cert,
	}
	err = sml.Init()
	if err != nil {
		return
	}

	data, err = sml.Authorize(state, respEncoded)
	if err != nil {
		return
	}

	return
}
开发者ID:postfix,项目名称:pritunl-auth,代码行数:31,代码来源:saml.go

示例3: Request

func (o *Oauth2) Request(db *database.Database, remoteState, remoteSecret,
	remoteCallback string, version int) (url string, err error) {

	coll := db.Tokens()
	state := utils.RandStr(64)

	url = o.conf.AuthCodeURL(state, oauth2.AccessTypeOffline,
		oauth2.ApprovalForce)
	if err != nil {
		err = &errortypes.UnknownError{
			errors.Wrap(err, "oauth.oauth2: Unknown api error"),
		}
		return
	}

	tokn := &Token{
		Id:             state,
		RemoteCallback: remoteCallback,
		RemoteState:    remoteState,
		RemoteSecret:   remoteSecret,
		Type:           o.Type,
		Version:        version,
	}
	err = coll.Insert(tokn)
	if err != nil {
		err = database.ParseError(err)
		return
	}

	return
}
开发者ID:postfix,项目名称:pritunl-auth,代码行数:31,代码来源:oauth2.go

示例4: Request

func (s *Saml) Request(db *database.Database, remoteState, remoteSecret,
	remoteCallback string) (resp *bytes.Buffer, err error) {

	coll := db.Tokens()
	state := utils.RandStr(64)

	req := s.provider.GetAuthnRequest()
	encodedReq, err := req.EncodedSignedString(s.provider.PrivateKeyPath)
	if err != nil {
		err = &SamlError{
			errors.Wrap(err, "saml: Encode error"),
		}
		return
	}

	data := struct {
		SsoUrl      string
		SAMLRequest string
		RelayState  string
	}{
		SsoUrl:      s.provider.IDPSSOURL,
		SAMLRequest: encodedReq,
		RelayState:  state,
	}

	respTemplate := template.New("saml")
	respTemplate, err = respTemplate.Parse(bindTemplate)
	if err != nil {
		err = &SamlError{
			errors.Wrap(err, "saml: Template parse error"),
		}
		return
	}

	tokn := &Token{
		Id:             state,
		RemoteCallback: remoteCallback,
		RemoteState:    remoteState,
		RemoteSecret:   remoteSecret,
		SsoUrl:         s.SsoUrl,
		IssuerUrl:      s.IssuerUrl,
		Cert:           s.Cert,
		Type:           "saml",
	}
	err = coll.Insert(tokn)
	if err != nil {
		err = database.ParseError(err)
		return
	}

	resp = &bytes.Buffer{}
	err = respTemplate.Execute(resp, data)
	if err != nil {
		err = &SamlError{
			errors.Wrap(err, "saml: Template execute error"),
		}
		return
	}

	return
}
开发者ID:postfix,项目名称:pritunl-auth,代码行数:61,代码来源:saml.go


注:本文中的github.com/pritunl/pritunl-auth/database.Database.Tokens方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。