| 323 | } |
| 324 | |
| 325 | func (s *Storage) GetAccessTokenSession(ctx context.Context, signature string, session fosite.Session) (fosite.Requester, error) { |
| 326 | var raw []byte |
| 327 | var revokedAt *time.Time |
| 328 | err := s.db(ctx).QueryRow(ctx, ` |
| 329 | SELECT request, revoked_at FROM oauth_access_tokens WHERE signature = $1 |
| 330 | `, signature).Scan(&raw, &revokedAt) |
| 331 | if errors.Is(err, pgx.ErrNoRows) { |
| 332 | return nil, fosite.ErrNotFound |
| 333 | } |
| 334 | if err != nil { |
| 335 | return nil, err |
| 336 | } |
| 337 | req, err := s.hydrate(ctx, raw, session) |
| 338 | if err != nil { |
| 339 | return nil, err |
| 340 | } |
| 341 | if revokedAt != nil { |
| 342 | return req, fosite.ErrInactiveToken |
| 343 | } |
| 344 | return req, nil |
| 345 | } |
| 346 | |
| 347 | func (s *Storage) DeleteAccessTokenSession(ctx context.Context, signature string) error { |
| 348 | _, err := s.db(ctx).Exec(ctx, |