Skip to content

Commit f83193f

Browse files
authored
feat: add expiry and requested times to logout table (#3837)
1 parent 0f37ba8 commit f83193f

20 files changed

+443
-20
lines changed

consent/strategy_default.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -860,6 +860,8 @@ func (s *DefaultStrategy) issueLogoutVerifier(ctx context.Context, w http.Respon
860860
Subject: session.Subject,
861861
SessionID: session.ID,
862862
Verifier: uuid.New(),
863+
RequestedAt: sqlxx.NullTime(time.Now().UTC().Round(time.Second)),
864+
ExpiresAt: sqlxx.NullTime(time.Now().UTC().Round(time.Second).Add(s.c.ConsentRequestMaxAge(ctx))),
863865
RPInitiated: false,
864866

865867
// PostLogoutRedirectURI is set to the value from config.Provider().LogoutRedirectURL()
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
"{\"challenge\":\"\",\"subject\":\"\",\"request_url\":\"\",\"rp_initiated\":false,\"client\":null}"
1+
"{\"challenge\":\"\",\"subject\":\"\",\"request_url\":\"\",\"rp_initiated\":false,\"expires_at\":null,\"requested_at\":null,\"client\":null}"

flow/consent_types.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -507,6 +507,8 @@ type LogoutRequest struct {
507507
Accepted bool `json:"-" db:"accepted"`
508508
Rejected bool `db:"rejected" json:"-"`
509509
ClientID sql.NullString `json:"-" db:"client_id"`
510+
ExpiresAt sqlxx.NullTime `json:"expires_at" db:"expires_at"`
511+
RequestedAt sqlxx.NullTime `json:"requested_at" db:"requested_at"`
510512
Client *client.Client `json:"client" db:"-"`
511513
}
512514

flow/error.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// Copyright © 2024 Ory Corp
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
package flow
5+
6+
import "github.com/ory/fosite"
7+
8+
var ErrorLogoutFlowExpired = fosite.ErrRequestUnauthorized.WithHint("The logout request has expired, please try the flow again.")

internal/httpclient/go.sum

Lines changed: 347 additions & 0 deletions
Large diffs are not rendered by default.

persistence/sql/migratest/fixtures/hydra_oauth2_logout_request/challenge-0009.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,7 @@
44
"sid": "session_id-0009",
55
"request_url": "http://request/0009",
66
"rp_initiated": true,
7+
"expires_at": null,
8+
"requested_at": null,
79
"client": null
810
}

persistence/sql/migratest/fixtures/hydra_oauth2_logout_request/challenge-0010.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,7 @@
44
"sid": "session_id-0010",
55
"request_url": "http://request/0010",
66
"rp_initiated": true,
7+
"expires_at": null,
8+
"requested_at": null,
79
"client": null
810
}

persistence/sql/migratest/fixtures/hydra_oauth2_logout_request/challenge-0011.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,7 @@
44
"sid": "session_id-0011",
55
"request_url": "http://request/0011",
66
"rp_initiated": true,
7+
"expires_at": null,
8+
"requested_at": null,
79
"client": null
810
}

persistence/sql/migratest/fixtures/hydra_oauth2_logout_request/challenge-0012.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,7 @@
44
"sid": "session_id-0012",
55
"request_url": "http://request/0012",
66
"rp_initiated": true,
7+
"expires_at": null,
8+
"requested_at": null,
79
"client": null
810
}

persistence/sql/migratest/fixtures/hydra_oauth2_logout_request/challenge-0013.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,7 @@
44
"sid": "session_id-0013",
55
"request_url": "http://request/0013",
66
"rp_initiated": true,
7+
"expires_at": null,
8+
"requested_at": null,
79
"client": null
810
}

0 commit comments

Comments
 (0)