Skip to content

Conversation

@crazytonyli
Copy link
Contributor

The web based sign-in flow is enabled on debug builds. But it will be hidden under a feature flag later.

sign-in.mp4

Regression Notes

  1. Potential unintended areas of impact

  2. What I did to test those areas of impact (or what existing automated tests I relied on)

  3. What automated tests I added (or what prevented me from doing so)

PR submission checklist:

  • I have completed the Regression Notes.
  • I have considered adding unit tests for my changes.
  • I have considered adding accessibility improvements for my changes.
  • I have considered if this change warrants user-facing release notes and have added them to RELEASE-NOTES.txt if necessary.

Testing checklist:

  • WordPress.com sites and self-hosted Jetpack sites.
  • Portrait and landscape orientations.
  • Light and dark modes.
  • Fonts: Larger, smaller and bold text.
  • High contrast.
  • VoiceOver.
  • Languages with large words or with letters/accents not frequently used in English.
  • Right-to-left languages. (Even if translation isn’t complete, formatting should still respect the right-to-left layout)
  • iPhone and iPad.
  • Multi-tasking: Split view and Slide over. (iPad)

@crazytonyli crazytonyli added this to the 25.5 milestone Oct 17, 2024
@crazytonyli crazytonyli requested review from jkmassel and kean October 17, 2024 00:16
@wpmobilebot
Copy link
Contributor

wpmobilebot commented Oct 17, 2024

WordPress Alpha📲 You can test the changes from this Pull Request in WordPress Alpha by scanning the QR code below to install the corresponding build.
App NameWordPress Alpha WordPress Alpha
ConfigurationRelease-Alpha
Build Numberpr23675-7389522
Version25.4.2
Bundle IDorg.wordpress.alpha
Commit7389522
App Center BuildWPiOS - One-Offs #10921
Automatticians: You can use our internal self-serve MC tool to give yourself access to App Center if needed.

@wpmobilebot
Copy link
Contributor

wpmobilebot commented Oct 17, 2024

Jetpack Alpha📲 You can test the changes from this Pull Request in Jetpack Alpha by scanning the QR code below to install the corresponding build.
App NameJetpack Alpha Jetpack Alpha
ConfigurationRelease-Alpha
Build Numberpr23675-7389522
Version25.4.2
Bundle IDcom.jetpack.alpha
Commit7389522
App Center Buildjetpack-installable-builds #9961
Automatticians: You can use our internal self-serve MC tool to give yourself access to App Center if needed.

Copy link
Contributor

@kean kean left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tested the flow, including logging-in with a new account in the web view and using passkeys. The flow works well.

It is a bit of a downgrade compared to the current implementation where the app prompts you to use one of the saved credentials from the Apple Passwords on first launch. Perhaps web views should be reserved for self-hosted sites and for wp.com account creation.

} else {
wpAssertionFailure("WP.com web login failed", userInfo: ["error": "\(error)"])
}
return
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(nit) Extract the first part into a separate method so that there is no return in the middle of this long method.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed in 43409de

// TODO: Replce with a remote feature flag.
// Enable web-based login for debug builds until the remote feature flag is available.
#if DEBUG
let webLoginEnabled = true
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If there is no need to update the flag remotely, you can use extension FeatureFlag: RolloutConfigurableFlag { to implement the percentage-based rollout locally.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In that case, we'd need to release the app to update the rollout percentage, right?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Personally, I'd prefer a remote feature flag because we can completely turn it off if there are horrible issues.

func signIn(from viewController: UINavigationController) async {
let token: String
do {
token = try await authenticate(from: viewController)
Copy link
Contributor

@kean kean Oct 17, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The animation at the top is distracting.

Untitled.mp4

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure why it looks like this for me. It's different on your recording. I think there is a bug with the first welcome page.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we present this login screen as a pushed navigation item instead of a popover?

That'd be more consistent with the current setup

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm I thought we had the ability to do it in the SwiftUI setup for self-hosted sites, but it's ok – we can dig into that further once we're not relying on a bunch of WPAuthenticator stuff anymore.

I have a few suggestions about this in #23702

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm I thought we had the ability to do it in the SwiftUI setup for self-hosted sites

I just checked. The application password flow for self-hosted site also presents Safari view as a modal.

@dangermattic
Copy link
Collaborator

1 Warning
⚠️ This PR is assigned to the milestone 25.5. The due date for this milestone has already passed.
Please assign it to a milestone with a later deadline or check whether the release for this milestone has already been finished.

Generated by 🚫 Danger

Copy link
Contributor

@kean kean left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

  • Still unsure it's a good idea to replace the existing native flow that work OK
  • Feature flag is missing

@crazytonyli
Copy link
Contributor Author

Feature flag is missing

The remote feature flag has not landed yet. Once it's landed, I'll update the client code.

@crazytonyli crazytonyli added this pull request to the merge queue Nov 3, 2024
Merged via the queue into trunk with commit d6c77da Nov 3, 2024
24 checks passed
@crazytonyli crazytonyli deleted the task/wpcom-web-based-authentication-rollout branch November 3, 2024 21:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants