Skip to content

Commit 4908b4b

Browse files
authored
Adds support for email verification_method in ConnectionOptions (#792)
2 parents 23009d0 + 40cfa44 commit 4908b4b

File tree

3 files changed

+43
-11
lines changed

3 files changed

+43
-11
lines changed

src/Auth0.ManagementApi/Models/Connections/ConnectionOptionsEmailAttribute.cs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1+
using System.Runtime.Serialization;
2+
13
using Newtonsoft.Json;
4+
using Newtonsoft.Json.Converters;
25

36
namespace Auth0.ManagementApi.Models.Connections
47
{
@@ -12,5 +15,30 @@ public class ConnectionOptionsEmailAttribute : ConnectionOptionsAttributeBase
1215
/// </summary>
1316
[JsonProperty("signup")]
1417
public ConnectionOptionsEmailSignup Signup { get; set; }
18+
19+
/// <summary>
20+
/// Gets or sets the verification method for email.
21+
/// </summary>
22+
[JsonConverter(typeof(StringEnumConverter))]
23+
[JsonProperty("verification_method")]
24+
public ConnectionOptionsEmailVerificationMethod? VerificationMethod { get; set; }
25+
}
26+
27+
/// <summary>
28+
/// Verification methods for email authentication
29+
/// </summary>
30+
public enum ConnectionOptionsEmailVerificationMethod
31+
{
32+
/// <summary>
33+
/// Use magic link for verification
34+
/// </summary>
35+
[EnumMember(Value = "link")]
36+
Link,
37+
38+
/// <summary>
39+
/// Use one-time password for verification
40+
/// </summary>
41+
[EnumMember(Value = "otp")]
42+
Otp
1543
}
1644
}

tests/Auth0.ManagementApi.IntegrationTests/ConnectionTests.cs

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
using Auth0.Tests.Shared;
1010
using Auth0.ManagementApi.Paging;
1111
using System.Collections.Generic;
12+
using System.Linq;
1213
using Auth0.AuthenticationApi.Models;
1314
using Auth0.ManagementApi.Models.Connections;
14-
using Auth0.Tests.Shared;
1515
using Newtonsoft.Json;
1616

1717
namespace Auth0.ManagementApi.IntegrationTests
@@ -403,15 +403,18 @@ await apiClient.Connections.CreateScimConfigurationAsync(
403403
// Retrieve the token and validate
404404
var retrievedScimTokens =
405405
await apiClient.Connections.GetScimTokenAsync(expectedScimConfiguration.ConnectionId);
406-
Assert.Equal(scimTokenOne.Scopes, retrievedScimTokens[0].Scopes);
407-
Assert.Equal(scimTokenOne.TokenId, retrievedScimTokens[0].TokenId);
408-
Assert.Equal(scimTokenOne.CreatedAt, retrievedScimTokens[0].CreatedAt);
409-
Assert.Equal(scimTokenOne.ValidUntil, retrievedScimTokens[0].ValidUntil);
406+
407+
var retrievedScimTokenOne = retrievedScimTokens.Single(x => x.TokenId == scimTokenOne.TokenId);
408+
var retrievedScimTokenTwo = retrievedScimTokens.Single(x => x.TokenId == scimTokenTwo.TokenId);
409+
Assert.Equal(scimTokenOne.Scopes, retrievedScimTokenOne.Scopes);
410+
Assert.Equal(scimTokenOne.TokenId, retrievedScimTokenOne.TokenId);
411+
Assert.Equal(scimTokenOne.CreatedAt, retrievedScimTokenOne.CreatedAt);
412+
Assert.Equal(scimTokenOne.ValidUntil, retrievedScimTokenOne.ValidUntil);
410413

411-
Assert.Equal(scimTokenTwo.Scopes, retrievedScimTokens[1].Scopes);
412-
Assert.Equal(scimTokenTwo.TokenId, retrievedScimTokens[1].TokenId);
413-
Assert.Equal(scimTokenTwo.CreatedAt, retrievedScimTokens[1].CreatedAt);
414-
Assert.Equal(scimTokenTwo.ValidUntil, retrievedScimTokens[1].ValidUntil);
414+
Assert.Equal(scimTokenTwo.Scopes, retrievedScimTokenTwo.Scopes);
415+
Assert.Equal(scimTokenTwo.TokenId, retrievedScimTokenTwo.TokenId);
416+
Assert.Equal(scimTokenTwo.CreatedAt, retrievedScimTokenTwo.CreatedAt);
417+
Assert.Equal(scimTokenTwo.ValidUntil, retrievedScimTokenTwo.ValidUntil);
415418

416419
// Delete SCIM Token and validate
417420
await apiClient.Connections.DeleteScimTokenAsync(expectedScimConfiguration.ConnectionId, scimTokenOne.TokenId);
@@ -506,7 +509,8 @@ private ConnectionOptions GetConnectionOptionsRequest()
506509
{
507510
Active = false
508511
}
509-
}
512+
},
513+
VerificationMethod = ConnectionOptionsEmailVerificationMethod.Otp
510514
},
511515
PhoneNumber = new ConnectionOptionsPhoneNumberAttribute()
512516
{

tests/Auth0.ManagementApi.IntegrationTests/KeysTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ public async void Test_import_encrypted_keys()
156156
importedKeys.ParentKid.Should().Be("a20128c5-9bf5-4209-8c43-b6dfcee60e9b");
157157
}
158158

159-
[Fact]
159+
[Fact(Skip = "Run manually - Running often on CI causes Rate Limit errors")]
160160
public async void Test_rekey_encrypted_keys()
161161
{
162162
// Get the existing Tenant Master Key

0 commit comments

Comments
 (0)