-
Notifications
You must be signed in to change notification settings - Fork 55
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adding custom JSON deserializer for UserInfo type #851
Merged
willvedd
merged 4 commits into
main
from
gh-840-userInfo-deserializer-for-variable-email-verified-field
Sep 20, 2023
Merged
Adding custom JSON deserializer for UserInfo type #851
willvedd
merged 4 commits into
main
from
gh-840-userInfo-deserializer-for-variable-email-verified-field
Sep 20, 2023
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Codecov ReportPatch coverage:
Additional details and impacted files@@ Coverage Diff @@
## main #851 +/- ##
==========================================
+ Coverage 73.34% 73.36% +0.01%
==========================================
Files 92 92
Lines 11847 11874 +27
==========================================
+ Hits 8689 8711 +22
- Misses 2644 2647 +3
- Partials 514 516 +2
☔ View full report in Codecov by Sentry. |
ewanharris
approved these changes
Sep 20, 2023
sergiught
approved these changes
Sep 20, 2023
Comment on lines
+52
to
+69
if alias.RawEmailVerified != nil { | ||
var emailVerified bool | ||
switch rawEmailVerified := alias.RawEmailVerified.(type) { | ||
case bool: | ||
emailVerified = rawEmailVerified | ||
case string: | ||
emailVerified, err = strconv.ParseBool(rawEmailVerified) | ||
if err != nil { | ||
return err | ||
} | ||
default: | ||
return fmt.Errorf("email_verified field expected to be bool or string, got: %s", reflect.TypeOf(rawEmailVerified)) | ||
} | ||
alias.EmailVerified = &emailVerified | ||
} | ||
|
||
return nil | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
😞 It's unfortunate that we have to do this...
Widcket
approved these changes
Sep 20, 2023
willvedd
deleted the
gh-840-userInfo-deserializer-for-variable-email-verified-field
branch
September 20, 2023 14:55
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🔧 Changes
As reported by #840, when testing sign-in with an Apple through the
auth0 test login
command, users will incur this error:This is caused by the
/userinfo
Authentication endpoint returning a string-encoded boolean value for Apple social connections; all other IdPs return a standard boolean value.The solution here is to implement a custom JSON deserializer for the
UserInfo
type. The logic is largely ripped from the Auth0 Go SDK.📚 References
🔬 Testing
Added unit test cases for normal boolean value, string-encoded boolean and error case.
📝 Checklist