flip-fest
flip-fest copied to clipboard
Dev Wallet Feature: Improve OpenID implementation
π Β If you are interested in working on this issue, please check out the Getting Started guide on HackerEarth!
Description/Problem
Dapps should be able to define and request user information from FCL compatible wallet providers so that they can associate the account address with identity fields. Currently, during authentication, the only field the FCL development wallet returns is the address of the authenticated account and hardcoded values for scopes provided. Within the development wallet, we need a way manage OpenID scopes per account and return them dynamically during authentication if requested by the FCL configuration.
If any user information is being shared, show the user a prompt on which details are being shared with what domain (similar to an OAuth flow) via the authentication UI.
Experience Required
- Moderate level experience with Typescript & Javascript
- Some understanding of FCL and the communication patterns for FCL wallets
Minimum Feature Set (Acceptance Criteria)
Manage OpenID fields on all accounts
- All these claims should be supported and editable as the administrator of the dev wallet (via the 'manage account' screens) and be done so with good UI/UX principles in mind.
Implement Dynamic OpenID Spec Authentication Responses
- All specified fields are OpenID Connect Spec in particular under 2.4 Scope Values and 2.5 Standard Claims.
- Replace hardcoded values with relevant dynamic ones from the account itself
Extension (Optional) Feature Set
Support required OpenID fields. If a field in the configuration of service.OpenID.scopes is required (via the '!' operator), then do the following:
If the account exists during authentication:
- If all the
requiredfields do not exist in the account:- Render and collect the fields that are required but missing
- Return the data with all required fields
- If all the
requiredfields do exist:- Return the data
If the account does not exist during authentication:
- Render and collect the required fields
- Save the collected data to the user's profile for future use
- Return the data
Milestone Requirements
- Create wireframes to illustrate how you plan on showing and managing OpenID scopes in the UI.
- Implement the management of OpenID fields on any account created in the dev wallet.
- An administrator should be able to modify any valid field to any value and have it saved to the account.
- A user should see which scopes are being shared with the dApp on authentication.
- The response from the wallet should contain values from the requested scopes (empty if not set).
- Optimize the UX of the wallet and its developer usability and/or implement the extension feature
- Add documentation on OpenID to the dev wallet
- Ensure scopes are optimized to be easy to manage and display during development
Software Requirements
Maintainability
- Code should be written with good practices in mind and allow extensibility
- Follow existing code semantics and patterns in the existing repository
Testing
- This feature should have unit tests for core parts of the logic.
- Each user flow should have at minimum one end to end test.
Other Requirements
Documentation
- The following pieces of documentation needs to be completed alongside the code for a successful submission:
- OpenID Usage: Help developers understand and use the feature set.
Judging Criteria
- For all projects, technical & high-level judging criteria apply.
- How effective is the UI/UX of the features implemented for developers and users to understand and interact with the OpenID fields?
Resources
- General Resource Guide
- Development Wallet
- FCL
- Kitty-items
Hello there. Mackenzie here. ππΌββοΈ I'm part of the Developer Experience team at Flow. Glad you're checking out this issue. I can help answer any questions you might have about what you see here, and if you decide to take this on, I'll be your primary point of contact for you or your team.
Please add your comments/questions here, or find me on the Flow Discord (mack)
Happy hacking! π
hi @10thfloor, we are interested to work on this issue. HackerEarth Team: Dev Wallet OIDC I hope it is not too late to join to FLIP Fest
@wfalcon0x It is not too late! Do you have any code, specification or a repository we could look at yet? If not, no worries, but an idea of your expected timeline would be helpful at this stage.
@10thfloor , not yet, just started to look into the code to understand what will need to be done. I missed your message yesterday. I would like to clarify some details and make sure we understand the requirements before I make an estimate on the timeline.
We understand that private info from the wallet providers will be requested via scopes. In regards to managing OpenID fields on all accounts, we could use the currently hardcoded values as default values as a start to populate the data at the account creation, just to have some data there for testing purposes. Is it something in line with what you are expecting?
In regards to showing the user a prompt on which details are being shared, we assume it is sufficient to expose on the UI the exact names of the scopes as they are referenced in the OpenID standard. As the dev wallet is a development tool, we assume it is not required to provide more user friendly description.
Please let me know, in what way do you prefer to share the wireframes with you?
Good day Dev Wallet OIDC (@wfalcon0x)
Thanks so much for all your hardwork & participation. In order to finalize winners & prepare for prize payout, we'll need the following actions from your end.
Please provide the following information byΒ Nov 17, 2021 (in this GH Issue is fine):
1. Team Information
- Team Members Information - Github Username + Email Contact + Percentage of prize allocation (total should = 100%)
- All mentioned members MUST react to the post with a π which will act as confirmation that the information is correct, or a π to indicate that the information is not correct.
- We will be reaching out via e-mail
πIMPORTANT: We will only proceed with prize payouts once all members have confirmed with π on the post.
2. Video Demo (optional)
- Please provide a 5-minute video demo to be featured & showcased in the FLIP Fest Closing Ceremonies
- Link format & Downloadable (eg. Google Drive, Vimeo)
- Content Format (Problem Statement, your work / how you solved it, final outcome)
We will be hosting Closing Ceremonies on November 23rd, 8AM PT where we'll having closing remarks from Dete & will be announcing the winners! I'll share the details here before Nov 17.
Hey folks,
We've received and reviewed over 82 submissions! What an amazing community on Flow! To commemorate all the hard work done, we have finalized winners and will be announcing them during our Closing Ceremony on Nov 23rd, 8AM PT. Be sure to join us - there may be some attendance prizes & a keynote from our CTO, Dete π!
RSVP here so you don't miss out! See you then!