(c *gin.Context, codeHash string, clientId string)
| 373 | } |
| 374 | |
| 375 | func (service *OIDCService) GetCodeEntry(c *gin.Context, codeHash string, clientId string) (repository.OidcCode, error) { |
| 376 | oidcCode, err := service.queries.GetOidcCode(c, codeHash) |
| 377 | |
| 378 | if err != nil { |
| 379 | if errors.Is(err, sql.ErrNoRows) { |
| 380 | return repository.OidcCode{}, ErrCodeNotFound |
| 381 | } |
| 382 | return repository.OidcCode{}, err |
| 383 | } |
| 384 | |
| 385 | if time.Now().Unix() > oidcCode.ExpiresAt { |
| 386 | err = service.queries.DeleteOidcCode(c, codeHash) |
| 387 | if err != nil { |
| 388 | return repository.OidcCode{}, err |
| 389 | } |
| 390 | err = service.DeleteUserinfo(c, oidcCode.Sub) |
| 391 | if err != nil { |
| 392 | return repository.OidcCode{}, err |
| 393 | } |
| 394 | return repository.OidcCode{}, ErrCodeExpired |
| 395 | } |
| 396 | |
| 397 | if oidcCode.ClientID != clientId { |
| 398 | return repository.OidcCode{}, ErrInvalidClient |
| 399 | } |
| 400 | |
| 401 | return oidcCode, nil |
| 402 | } |
| 403 | |
| 404 | func (service *OIDCService) generateIDToken(client config.OIDCClientConfig, user repository.OidcUserinfo, scope string, nonce string) (string, error) { |
| 405 | createdAt := time.Now().Unix() |
no test coverage detected