MCPcopy Create free account
hub / github.com/TheThingsNetwork/lorawan-stack / loadAccess

Method loadAccess

pkg/oauth/storage.go:246–284  ·  view source on GitHub ↗
(id string)

Source from the content-addressed store, hash-verified

244}
245
246func (s *storage) loadAccess(id string) (*osin.AccessData, error) {
247 var (
248 accessToken *ttnpb.OAuthAccessToken
249 client *ttnpb.Client
250 )
251 err := s.store.Transact(s.ctx, func(ctx context.Context, st oauth_store.Interface) (err error) {
252 accessToken, err = st.GetAccessToken(ctx, id)
253 if err != nil {
254 return err
255 }
256 client, err = st.GetClient(ctx, accessToken.ClientIds, nil)
257 if err != nil {
258 return err
259 }
260 return nil
261 })
262 if err != nil {
263 return nil, err
264 }
265 var expiresIn int32
266 if expiresAt := ttnpb.StdTime(accessToken.ExpiresAt); expiresAt != nil {
267 expiresIn = int32(expiresAt.Sub(*ttnpb.StdTime(accessToken.CreatedAt)).Seconds())
268 }
269 return &osin.AccessData{
270 Client: osinClient{client},
271 AccessToken: accessToken.AccessToken,
272 RefreshToken: accessToken.RefreshToken,
273 ExpiresIn: expiresIn,
274 Scope: rightsToScope(accessToken.Rights...),
275 CreatedAt: *ttnpb.StdTime(accessToken.CreatedAt),
276 UserData: userData{
277 UserSessionIdentifiers: &ttnpb.UserSessionIdentifiers{
278 UserIds: accessToken.UserIds,
279 SessionId: accessToken.UserSessionId,
280 },
281 ID: id,
282 },
283 }, nil
284}
285
286func (s *storage) LoadAccess(token string) (*osin.AccessData, error) {
287 panic("LoadAccess should never be called by osin")

Callers 1

LoadRefreshMethod · 0.95

Calls 6

StdTimeFunction · 0.92
rightsToScopeFunction · 0.85
SubMethod · 0.80
TransactMethod · 0.65
GetAccessTokenMethod · 0.65
GetClientMethod · 0.65

Tested by

no test coverage detected