Skip to content

Commit e33bf72

Browse files
include the ID token in the refresh token result
1 parent bf929ca commit e33bf72

File tree

3 files changed

+12
-0
lines changed

3 files changed

+12
-0
lines changed

access-token-management/src/AccessTokenManagement.OpenIdConnect/UserToken.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,11 @@ public class UserToken : ClientCredentialsToken
1212
/// The refresh token
1313
/// </summary>
1414
public string? RefreshToken { get; set; }
15+
16+
/// <summary>
17+
/// The identity token that may be populated by the OP when refreshing the access token. This
18+
/// value is not stored, but available should some OP's require to send this value, for example
19+
/// during logout.
20+
/// </summary>
21+
public string? IdentityToken { get; set; }
1522
}

access-token-management/src/AccessTokenManagement.OpenIdConnect/UserTokenEndpointService.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ public async Task<UserToken> RefreshAccessTokenAsync(
135135
}
136136
else
137137
{
138+
token.IdentityToken = response.IdentityToken;
138139
token.AccessToken = response.AccessToken;
139140
token.AccessTokenType = response.TokenType;
140141
token.DPoPJsonWebKey = dPoPJsonWebKey;

access-token-management/test/AccessTokenManagement.Tests/UserTokenManagementTests.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,7 @@ public async Task Short_token_lifetime_should_trigger_refresh()
212212
// Respond to refresh with a short token lifetime so that we trigger another refresh on 2nd use
213213
var refreshTokenResponse = new
214214
{
215+
id_token = "refreshed1_id_token",
215216
access_token = "refreshed1_access_token",
216217
token_type = "token_type1",
217218
expires_in = 10,
@@ -225,6 +226,7 @@ public async Task Short_token_lifetime_should_trigger_refresh()
225226
// Respond to second refresh with a long token lifetime so that we don't trigger another refresh on 3rd use
226227
var refreshTokenResponse2 = new
227228
{
229+
id_token = "refreshed2_id_token",
228230
access_token = "refreshed2_access_token",
229231
token_type = "token_type2",
230232
expires_in = 3600,
@@ -245,6 +247,7 @@ public async Task Short_token_lifetime_should_trigger_refresh()
245247

246248
token.ShouldNotBeNull();
247249
token.IsError.ShouldBeFalse();
250+
token.IdentityToken.ShouldBe("refreshed1_id_token");
248251
token.AccessToken.ShouldBe("refreshed1_access_token");
249252
token.AccessTokenType.ShouldBe("token_type1");
250253
token.RefreshToken.ShouldBe("refreshed1_refresh_token");
@@ -256,6 +259,7 @@ public async Task Short_token_lifetime_should_trigger_refresh()
256259

257260
token.ShouldNotBeNull();
258261
token.IsError.ShouldBeFalse();
262+
token.IdentityToken.ShouldBe("refreshed2_id_token");
259263
token.AccessToken.ShouldBe("refreshed2_access_token");
260264
token.AccessTokenType.ShouldBe("token_type2");
261265
token.RefreshToken.ShouldBe("refreshed2_refresh_token");

0 commit comments

Comments
 (0)