Skip to content
This repository has been archived by the owner on Dec 14, 2021. It is now read-only.

[NEEDS DESIGN] Add UI to login with an existing AuthProvider FxA account. #894

Open
jhugman opened this issue Aug 30, 2019 · 5 comments
Open
Labels
blocked enhancement Issue describes an improvement or addition to the product. feature-fxa needs-design needs-eng needs-product

Comments

@jhugman
Copy link
Contributor

jhugman commented Aug 30, 2019

User Story

  • As a user, I want login with an existing account so I can do login without typing my username/password again.
  • As a Fenix user who has credentials saved in the browser, I want Lockwise to recognize that I have a Fenix/FxA account and login without typing my username/password again.
  • As a FxA user who has my FxA account associated with my Android (in system settings), I want Lockwise to recognize that I have a FxA account saved in my Android settings and login without typing my username/password again.
  • As both a user with multiple accounts, I will be able to see my choices and choose my preferred account to log in to Lockwise without typing my username/password again.

Dependencies

Auth provision - this will most likely need to come from A-C

@grigoryk has done the majority of the non-UI work in #879.
@changecourse / @mozilla-lockwise/ux is required to design the UX, esp. around

  • welcome screen
  • transitions to item list

Acceptance Criteria

  • I can do use the same account provided by Fennec.
@eliserichards eliserichards added feature-fxa needs-design enhancement Issue describes an improvement or addition to the product. labels Aug 30, 2019
@eliserichards eliserichards changed the title Add UI to login with an existing AuthProvider FxA account. [NEEDS DESIGN] Add UI to login with an existing AuthProvider FxA account. Aug 30, 2019
@ddurst ddurst added this to the 2019 Q4 backlog milestone Sep 13, 2019
@sandysage
Copy link

How does this work interact with the Android system accounts? Does this supplement the provider's way of sharing account state between apps? Or does it replace/do it ourselves? What are the drawbacks of rolling our own so to speak, instead of using the Android method as the official way of sharing account state between apps?

Just trying to figure out how this fits into our scope work and priorities. Generally, yes, we want to share the user's signed in state across apps. I want to make sure I have all the context and understand the technical decision about how we approached this desired state.

@sandysage
Copy link

@jhugman do you have insight here? should we open a separate task to investigate Android system accounts first before we figure out the UX here?

@grigoryk
Copy link

Maybe I can answer some question. Not relying on Android system's account goes back to our decision to not rely on Android system accounts for the FxA work we've done in android-components. This mostly goes back to our experience integrating with the Android system accounts in Fennec.

Our current approach to account sharing rolled-out in Q2/Q3:

  • we shipped support for auth sharing in Fennec ESR, with Fenix and Lockwise as "whitelisted consumers".
  • In android-components, we shipped a component for consuming auth state from whitelisted providers (currently, just Fennec).
  • In Fenix, we shipped onboarding UI that enabled a one-tap sign-in
  • (I've also pushed out a lockwise "demonstration" PR around the same time, and remember pinging you about it with regards to getting it prioritized)
  • next step is to enable Fenix to act as an auth provider (Consider ability to share authentication state with trusted applications mozilla-mobile/android-components#2776), allowing our apps to auto-login when logged-in Fenix is present.

PR that landed in Lockwise (#879) uses that A-C component for consuming Fennec's auth state.

Once Fenix becomes a consumer, Lockwise will automatically gain ability to login via a Fenix account, with no additional changes required to Lockwise.

@grigoryk
Copy link

What are the drawbacks of rolling our own so to speak, instead of using the Android method as the official way of sharing account state between apps?

Mostly that a Firefox account isn't listed in the Android system settings, since we don't create a system account. In Fennec, our system account was also responsible for data synchronization. Those two systems are now mostly decoupled within a-c, since account/sync coupling doesn't tie into our long-term plans.

Other than that, we get the same data sharing capabilities but with more flexibility and quite a bit less technical complexity - our 'secure communication channel' approach is significantly less complicated than Android's account APIs.

@jhugman
Copy link
Contributor Author

jhugman commented Oct 29, 2019

@ssage This bug is orthogonal to Android system accounts.

This bug takes @grigoryk 's proof of concept PR (already landed) puts a @changecourse blessed design upon it.

This bug is required if we want to offer an upgrade path from Fenix logins to Lockwise.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
blocked enhancement Issue describes an improvement or addition to the product. feature-fxa needs-design needs-eng needs-product
Projects
None yet
Development

No branches or pull requests

5 participants