本文整理汇总了Golang中github.com/RangelReale/osin.AccessData类的典型用法代码示例。如果您正苦于以下问题:Golang AccessData类的具体用法?Golang AccessData怎么用?Golang AccessData使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了AccessData类的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: GenerateAccessToken
func (c *AccessTokenGenJWT) GenerateAccessToken(data *osin.AccessData, generaterefresh bool) (accesstoken string, refreshtoken string, err error) {
// generate JWT access token
token := jwt.New(jwt.GetSigningMethod("RS256"))
token.Claims["cid"] = data.Client.GetId()
token.Claims["exp"] = data.ExpireAt().Unix()
accesstoken, err = token.SignedString(c.PrivateKey)
if err != nil {
return "", "", err
}
if generaterefresh {
// generate JWT access token
token = jwt.New(jwt.GetSigningMethod("RS256"))
token.Claims["cid"] = data.Client.GetId()
token.Claims["at"] = accesstoken
token.Claims["exp"] = data.ExpireAt().Unix()
refreshtoken, err = token.SignedString(c.PrivateKey)
if err != nil {
return "", "", err
}
}
return
}
开发者ID:jcscottiii,项目名称:osin,代码行数:26,代码来源:jwttoken.go
示例2: LoadRefresh
// LoadRefresh will load access data from Redis
func (r RedisOsinStorageInterface) LoadRefresh(token string) (*osin.AccessData, error) {
key := REFRESH_PREFIX + token
log.Debug("Loading REFRESH key: ", key)
accessJSON, storeErr := r.store.GetKey(key)
if storeErr != nil {
log.Error("Failure retreiving access token by key")
log.Error(storeErr)
return nil, storeErr
}
// new interface means having to make this nested... ick.
thisAccessData := osin.AccessData{}
thisAccessData.Client = new(osin.DefaultClient)
thisAccessData.AuthorizeData = &osin.AuthorizeData{}
thisAccessData.AuthorizeData.Client = new(osin.DefaultClient)
if marshalErr := json.Unmarshal([]byte(accessJSON), &thisAccessData); marshalErr != nil {
log.Error("Couldn't unmarshal OAuth auth data object (LoadRefresh)")
log.Error(marshalErr)
return nil, marshalErr
}
return &thisAccessData, nil
}
开发者ID:alexpopero,项目名称:tyk,代码行数:26,代码来源:oauth_manager.go
示例3: GenerateAccessToken
func (c *AccessTokenGenJWT) GenerateAccessToken(data *osin.AccessData, generaterefresh bool) (accesstoken string, refreshtoken string, err error) {
// generate JWT access token
token := jwt.NewWithClaims(jwt.SigningMethodRS256, jwt.MapClaims{
"cid": data.Client.GetId(),
"exp": data.ExpireAt().Unix(),
})
accesstoken, err = token.SignedString(c.PrivateKey)
if err != nil {
return "", "", err
}
if !generaterefresh {
return
}
// generate JWT refresh token
token = jwt.NewWithClaims(jwt.SigningMethodRS256, jwt.MapClaims{
"cid": data.Client.GetId(),
})
refreshtoken, err = token.SignedString(c.PrivateKey)
if err != nil {
return "", "", err
}
return
}
开发者ID:yh453926638,项目名称:osin,代码行数:27,代码来源:jwttoken.go
示例4: LoadAccess
func (s *Storage) LoadAccess(code string) (*osin.AccessData, error) {
var userData string
var cid, prevAccessToken, authorizeCode string
var result osin.AccessData
row := s.db.QueryRow("SELECT client, authorize, previous, access_token, refresh_token, expires_in, scope, redirect_uri, created_at, extra FROM access WHERE access_token=$1 LIMIT 1", code)
err := row.Scan(&cid, &authorizeCode, &prevAccessToken, &result.AccessToken, &result.RefreshToken, &result.ExpiresIn, &result.Scope, &result.RedirectUri, &result.CreatedAt, &userData)
result.UserData = userData
client, err := s.GetClient(cid)
if err != nil {
return nil, err
}
result.Client = client
authorize, err := s.LoadAuthorize(authorizeCode)
if err != nil {
return nil, err
}
result.AuthorizeData = authorize
if prevAccessToken != "" {
prevAccess, err := s.LoadAccess(prevAccessToken)
if err != nil {
return nil, err
}
result.AccessData = prevAccess
}
return &result, err
}
开发者ID:galeone,项目名称:osin-storage,代码行数:30,代码来源:postgres.go
示例5: LoadAccess
// LoadAccess retrieves access data by token. Client information MUST be loaded together.
// AuthorizeData and AccessData DON'T NEED to be loaded if not easily available.
// Optionally can return error if expired.
func (s *Storage) LoadAccess(code string) (*osin.AccessData, error) {
var extra, cid, prevAccessToken, authorizeCode string
var result osin.AccessData
args := map[string]interface{}{
"code": code,
}
nstmt, err := s.db.PrepareNamed("SELECT client, authorize, previous, access_token, refresh_token, expires_in, scope, redirect_uri, created_at, extra FROM access WHERE access_token=:code LIMIT 1")
if err := nstmt.QueryRowx(args).Scan(
&cid,
&authorizeCode,
&prevAccessToken,
&result.AccessToken,
&result.RefreshToken,
&result.ExpiresIn,
&result.Scope,
&result.RedirectUri,
&result.CreatedAt,
&extra,
); err == sql.ErrNoRows {
return nil, errors.New("not found")
} else if err != nil {
return nil, errors.New(err)
}
result.UserData = extra
client, err := s.GetClient(cid)
if err != nil {
return nil, err
}
result.Client = client
authorize, err := s.LoadAuthorize(authorizeCode)
if err != nil {
return nil, err
}
result.AuthorizeData = authorize
if prevAccessToken != "" {
prevAccess, err := s.LoadAccess(prevAccessToken)
if err != nil {
return nil, err
}
result.AccessData = prevAccess
}
return &result, nil
}
开发者ID:guitou4573,项目名称:osin-storage,代码行数:52,代码来源:mysql.go
示例6: transfer
func (old *AccessData) transfer() *osin.AccessData {
var accessData osin.AccessData = osin.AccessData{}
accessData.Client = &old.Client
accessData.AccessToken = old.AccessToken
accessData.RefreshToken = old.RefreshToken
accessData.ExpiresIn = old.ExpiresIn
accessData.Scope = old.Scope
accessData.RedirectUri = old.RedirectUri
accessData.CreatedAt = old.CreatedAt
accessData.UserData = old.UserData
return &accessData
}
开发者ID:zhangbaitong,项目名称:ark-ucenter,代码行数:12,代码来源:types.go
示例7: LoadAccess
// LoadAccess retrieves access data by token. Client information MUST be loaded together.
// AuthorizeData and AccessData DON'T NEED to be loaded if not easily available.
// Optionally can return error if expired.
func (s *Storage) LoadAccess(code string) (*osin.AccessData, error) {
var extra, cid, prevAccessToken, authorizeCode string
var result osin.AccessData
if err := s.db.QueryRow(
"SELECT client, authorize, previous, access_token, refresh_token, expires_in, scope, redirect_uri, created_at, extra FROM access WHERE access_token=$1 LIMIT 1",
code,
).Scan(
&cid,
&authorizeCode,
&prevAccessToken,
&result.AccessToken,
&result.RefreshToken,
&result.ExpiresIn,
&result.Scope,
&result.RedirectUri,
&result.CreatedAt,
&extra,
); err == sql.ErrNoRows {
return nil, pkg.ErrNotFound
} else if err != nil {
return nil, errors.New(err)
}
result.UserData = extra
client, err := s.GetClient(cid)
if err != nil {
return nil, err
}
result.Client = client
authorize, err := s.LoadAuthorize(authorizeCode)
if err != nil {
return nil, err
}
result.AuthorizeData = authorize
if prevAccessToken != "" {
prevAccess, err := s.LoadAccess(prevAccessToken)
if err != nil {
return nil, err
}
result.AccessData = prevAccess
}
return &result, nil
}
开发者ID:guitou4573,项目名称:osin-storage,代码行数:50,代码来源:postgres.go
示例8: GenerateAccessToken
func (j *JWT) GenerateAccessToken(data *osin.AccessData, generateRefresh bool) (accessToken string, refreshToken string, err error) {
claims, ok := data.UserData.(ClaimsCarrier)
if !ok {
return "", "", errors.Errorf("Could not assert claims to ClaimsCarrier: %v", claims)
}
claims["exp"] = data.ExpireAt()
if accessToken, err = j.SignToken(claims, map[string]interface{}{}); err != nil {
return "", "", err
} else if !generateRefresh {
return
}
if refreshToken, err = j.SignToken(claims, map[string]interface{}{}); err != nil {
return "", "", err
}
return
}
开发者ID:thanzen,项目名称:hydra,代码行数:18,代码来源:jwt.go
示例9: LoadAccess
// LoadAccess will load access data from redis
func (r RedisOsinStorageInterface) LoadAccess(token string) (*osin.AccessData, error) {
key := ACCESS_PREFIX + token
log.Debug("Loading ACCESS key: ", key)
accessJSON, storeErr := r.store.GetKey(key)
if storeErr != nil {
log.Error("Failure retreiving access token by key")
log.Error(storeErr)
return nil, storeErr
}
thisAccessData := osin.AccessData{}
thisAccessData.Client = new(osin.DefaultClient)
if marshalErr := json.Unmarshal([]byte(accessJSON), &thisAccessData); marshalErr != nil {
log.Error("Couldn't unmarshal OAuth auth data object (LoadAccess)")
log.Error(marshalErr)
return nil, marshalErr
}
return &thisAccessData, nil
}
开发者ID:alexpopero,项目名称:tyk,代码行数:22,代码来源:oauth_manager.go
示例10: SaveAccess
// SaveAccess writes AccessData.
// If RefreshToken is not blank, it must save in a way that can be loaded using LoadRefresh.
func (s *Storage) SaveAccess(d *osin.AccessData) error {
data := &accessData{
ID: bson.NewObjectId(),
ClientID: d.Client.GetUserData().(*Client).ID,
AccessToken: d.AccessToken,
RefreshToken: d.RefreshToken,
Scope: d.Scope,
RedirectUri: d.RedirectUri,
CreatedAt: d.CreatedAt,
ExpiresIn: d.ExpiresIn,
}
err := s.accessData.Insert(&data)
if err != nil {
return errgo.Mask(err)
}
d.UserData = data
return nil
}
开发者ID:fd,项目名称:mauth,代码行数:22,代码来源:storage.go
示例11: LoadAccess
// LoadAccess retrieves access data by token. osin.Client information MUST be loaded together.
// osin.AuthorizeData and osin.AccessData DON'T NEED to be loaded if not easily available.
// Optionally can return error if expired.
func (s *OAuth2Storage) LoadAccess(token string) (*osin.AccessData, error) {
oad := new(OAuth2AccessData)
if err := Db().Model(OAuth2AccessData{}).Where(&OAuth2AccessData{AccessToken: token}).Scan(oad); err != nil {
return nil, errors.New("LoadAccess: AccessToken not found")
}
var ret osin.AccessData
ret.CreatedAt = oad.CreatedAt
ret.ExpiresIn = int32(oad.ExpiresIn)
if ret.IsExpired() {
return nil, errors.New("Access token expired")
}
if client, err := s.GetClient(strconv.FormatUint(oad.ClientID, 10)); err == nil {
ret.Client = client
} else {
return nil, err
}
ret.AccessToken = token
ret.Scope = oad.Scope
ret.RedirectUri = oad.RedirectURI
ret.UserData = oad.UserID
if oad.RefreshTokenID.Valid {
var refreshToken OAuth2RefreshToken
if err := Db().First(&refreshToken, uint64(oad.RefreshTokenID.Int64)); err != nil {
return nil, err
}
ret.RefreshToken = refreshToken.Token
}
return &ret, nil
}
开发者ID:nerdzeu,项目名称:nerdz-api,代码行数:38,代码来源:oauth2.go
示例12: createAccessData
func (store *MongoStorage) createAccessData(copyFrom *AccessData, osinData *osin.AccessData) *osin.AccessData {
if copyFrom.AccessData != nil {
osinAccessData := store.createAccessData(copyFrom.AccessData, &osin.AccessData{})
osinData.AccessData = osinAccessData
}
osinData.AccessToken = copyFrom.AccessToken
osinData.RefreshToken = copyFrom.RefreshToken
osinData.ExpiresIn = copyFrom.ExpiresIn
osinData.Scope = copyFrom.Scope
osinData.RedirectUri = copyFrom.RedirectUri
osinData.CreatedAt = copyFrom.CreatedAt
osinData.UserData = copyFrom.UserData
client, err := store.GetClientWithUserData(copyFrom.UserData)
if err != nil || client == nil {
osinData.Client = &osin.DefaultClient{}
} else {
osinData.Client = client
}
authorizeData, err := store.GetAuthorizeDataWithUserData(copyFrom.UserData)
if err != nil || client == nil {
osinData.AuthorizeData = &osin.AuthorizeData{}
} else {
osinData.AuthorizeData = authorizeData
}
return osinData
}
开发者ID:koding,项目名称:koding,代码行数:30,代码来源:authorization.go
注:本文中的github.com/RangelReale/osin.AccessData类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论