auth0 / Auth0.swift

Auth0 SDK for Apple platforms
https://auth0.github.io/Auth0.swift
MIT License
335 stars 221 forks source link

Auth0.webAuth() doesn't work during migration from iOS to VisionOS platform #823

Closed DanilRostov closed 3 days ago

DanilRostov commented 8 months ago

Checklist

Description

Hi Auth0 team. Thank you for the great product! I have iOS application that I'm migration to VisionOS platform. I have auth0 in iOS app and that works just fine. I use webAuth() method and during migration to VisionOS I got the next error: "Module 'Auth0' has no member named 'webAuth'". I discovered the source code a little bit and found the next condition in "Auth0" file that are not passing: #if WEB_AUTH_PLATFORM. That should be the root cause why error occues on compilation stage. I tried to apply the flag "-DWEB_AUTH_PLATFORM" to "Swift Compiler - Custom Flags", but it didn't help. Are there any tweaks that I can apply to my project and make it work? What would be the recomended approach for VisionOS platform?

I would be happy if someone provide any relevant information. Thank you!

Reproduction

  1. Create VisionOS application
  2. Add Auth0 Swift Package 2.5.0
  3. Use webAuth() method
  4. Compile the project

Additional context

No response

Auth0.swift version

2.5.0

Platform

iOS

Platform version(s)

17.2

Xcode version

15.1

Package manager

Swift Package Manager

Widcket commented 8 months ago

Hi @DanilRostov, thanks for raising this.

The SDK does not yet support VisionOS. Unfortunately, I don't have any news to share ATM regarding future plans around this.

I discovered the source code a little bit and found the next condition in "Auth0" file that are not passing: #if WEB_AUTH_PLATFORM. That should be the root cause why error occues on compilation stage.

WEB_AUTH_PLATFORM is defined:

thefaj commented 7 months ago

Very interested in visionOS support as well for our app. Thank you for prioritizing this (lack of Auth0 support is a blocking issue for us).

cgcardona commented 7 months ago

We're also very interested in VisionOS support. We love Auth0 and are using it for our MacOS and iOS apps! Would love to also use it for VisionOS.

Thanks for all the great work!

thefaj commented 7 months ago

Not sure why Auth0 didn't just update this library as compatible for visionOS way back in June 2023 (maybe there's a staffing issue inside the company?).

Anyway, the library works just fine on visionOS once you update the Swift library to 5.9 and add in visionOS flags in this and the SimpleKeychain repositories. I have a fork that fixes things for the Swift Package Manager. I ignored the Cocoapods or Carthage stuff and got rid of the XCTest targets that aren't necessary. https://github.com/senstream/Auth0.swift

Note: Just use this as a reference to get things up and running in your project.

cgcardona commented 7 months ago

@thefaj this is great! I'll check out your fork. Thanks!

FWIW I contacted Auth0 on X and asked them to share this thread w/ their engineering team and they said that they would.

thefaj commented 7 months ago

@cgcardona Awesome! And good luck with your visionOS work! 🥽

It looks like Apple WWDR reached out to Auth0 in December to get visionOS support added, but Auth0 marked the request as invalid: https://github.com/auth0/Auth0.swift/issues/818

Widcket commented 7 months ago

Hi @thefaj,

Not sure why Auth0 didn't just update this library as compatible for visionOS way back in June 2023 (maybe there's a staffing issue inside the company?).

The visionOS SDK only became stable last month with the release of Xcode 15.2. We can't add support for the non-stable SDK of a new Apple platform, as things are bound to change. For example, at first #if os(iOS) evaluated to true on visionOS, then it changed to #if os(xrOS), and now it's #if os(visionOS).

once you update the Swift library to 5.9 and add in visionOS flags

That requires Xcode 15+; but as of today it's still possible to upload to the App Store apps built with Xcode 14. And that will be the case until the last days of April. So we can't drop support for Xcode 14 just yet, as per our support policy.

Screenshot 2024-02-19 at 19 36 12

I ignored the Cocoapods or Carthage stuff and got rid of the XCTest targets that aren't necessary.

We need to ensure to support Carthage and Cocoapods as well, and we can't simply remove the entire test target from Package.swift.

It looks like Apple WWDR reached out to Auth0 in December to get visionOS support added, but Auth0 marked the request as invalid

That issue was created by an anonymous account with no activity and, as such, was not taken seriously.

Thanks for your patience on this.

thefaj commented 7 months ago

@Widcket Thanks for making this a priority.

NumaNumaNuma commented 5 months ago

Hi @Widcket , any update on this?

kkarimz commented 4 months ago

Hello @Widcket , any update on this please or timeline on when it will be supported? Thanks!

thefaj commented 4 months ago

fortunately the sdk is open source, so we’re shipping with my branch on visionOS. The lack of communication from Auth0 is disturbing, however. I’ve filed a complaint against this sdk with Auth0 internal support but of course got no response.

We’re exploring alternatives in case this is a sign that Auth0/Okta as a company is in decline. (Their customer support certainly is non existent.)

desusai7 commented 4 months ago

Dear Community,

I'd like to extend my apologies for the recent lack of communication and support regarding our SDK. The SDKs team recently underwent restructuring, which impacted our ability to respond promptly. However, I want to assure you that the new team is actively addressing these issues.

I will personally ensure that clear timelines and updates are provided by the end of next week. Thank you for your patience and valuable feedback.

brth31 commented 4 months ago

@thefaj @kkarimz @NumaNumaNuma thank you so much for your patience here! I'm Bharath from the Auth0 product team. In the upcoming weeks, we are planning to address all open issues across our portfolio of SDKs. We also have some exciting new releases coming up this quarter.

We will report back with timelines and updates on this issue by next week :)

desusai7 commented 4 months ago

Hi everyone,

We really appreciate your patience. We’ve discussed this internally, and as promised, I’m excited to share information about our timelines. We are planning to release visionOS support by mid-June.

Thank you for your understanding and support!

cgomez-rb commented 3 months ago

Hi @desusai7, Is there an estimated date of when you'll have the release of visionOS support? Thanks.

desusai7 commented 3 months ago

Hi @cgomez-rb,

We have hit some blockers and there is a slight delay in the release, we are expecting it to be released by next week

desusai7 commented 2 months ago

Hi @cgomez-rb, @thefaj, @NumaNumaNuma, @cgcardona, @DanilRostov,

We're excited to announce that we've just released visionOS support as part of version 2.9.0-beta.0. Please try it out and let us know if you encounter any issues.

If all goes well with the beta, we plan to include this feature in a standard release in two weeks.

Please note that we have dropped support for Xcode 14 and Swift versions 5.7 and 5.8. Additionally, as per our support policy outlined here, we have also dropped support for iOS 13 and tvOS 13.

Thank you all for your support and patience as we work on this feature.

desusai7 commented 2 months ago

Hello @cgomez-rb, @thefaj, @NumaNumaNuma, @cgcardona, @DanilRostov, and all our wonderful community members,

Have you had the chance to try this out? We'd love to hear any feedback you might have!

We're excited to announce that we plan to include this in the standard version in the next two weeks. Looking forward to your thoughts on this!

cgomez-rb commented 1 month ago

@desusai7 Hi, sorry for the late response but started working until now for our visionOS app integration. I was actually wondering if there are any differences in terms of configuration or any other logic related specific to visionOS? I was testing the beta SDK using our iOS/iPad implementation which was working fine, but on visionOS is launching the main web site instead of the login one. I'll keep looking to see if the issue is on my side but I'd appreciate any extra docs you have for visionOS. Thanks.

desusai7 commented 1 month ago

@cgomez-rb, Can you please share the code snippet you are using for WebAuth ?

And can you please elaborate more on what do you mean when you mentioned main website instead of login one ?

Were you testing on simulator ?

cgomez-rb commented 1 month ago

@desusai7 Good morning. Actually I made it work yesterday night. I was missing the callback URL and logout URL for visionOS... as soon as I added those in the Auth0 dashboard, everything seems to work fine. Thanks any way. 😄 And yes, I tested on simulator. And what I mean by main page was the landing page of our website, not the Auth0 login page setup in our dashboard. What I'm using for the Web Auth is:

let credentials = try await Auth0
            .webAuth(clientId: configuration.clientId, domain: configuration.auth0Domain)
            .scope("openid profile email offline_access")
            .useEphemeralSession()
            .start()
desusai7 commented 1 month ago

@cgomez-rb, awesome, great to hear that !

@thefaj, @NumaNumaNuma, @cgcardona, @DanilRostov, Have you had the chance to test it out ?

DanilRostov commented 1 month ago

@desusai7, apologies for the delayed response.

I appreciate the considerable attention my issue has received from both parties: community and Auth0 support team. In January, I had to address an authentication feature and opted to utilize another vendor for that part of my app.

However, I am happy to see that support for VisionOS continues to expand as both the community and platform grow. I plan to dedicate a few hours to exploring the newly added support and will share my feedback accordingly.

desusai7 commented 3 days ago

Closing this for now as we had released support for visionOS within version 2.9.0.