logto-io / logto

🧑‍🚀 The better identity infrastructure for developers and the open-source alternative to Auth0.
https://logto.io
Mozilla Public License 2.0
8.48k stars 418 forks source link

feature request: Request for Login Page Support for Older Browsers in Logto Project #3878

Open msmarks opened 1 year ago

msmarks commented 1 year ago

What problem did you meet?

I encountered an issue with the Logto project where the login page does not support older browsers. Some of our users are still using older browsers that do not support Optional Chaining.

Describe what you'd like Logto to have

I would like to request support for older browsers on the login page of the Logto project. Currently, the use of Optional Chaining in the code prevents users with older browsers from accessing the login page. It would be great if Logto could provide a fallback or alternative implementation that works on older browser versions, ensuring compatibility for all users. Thank you!

gao-sun commented 1 year ago

totally understand. however it relies on the business context to decide which config Logto should use to build frontend projects. now we uses the default config which covers 88.2% global users at the moment i post.

two directions i suggest:

  1. update the browserslist config and build Logto locally
  2. contribute a Logto build argument for using the specific browserslist config to build Logto. then we could build a separate image during releasing
msmarks commented 1 year ago

Thank you for your response. I understand that software engineering doesn't aim for 100% solutions.

Based on your suggestion 1, I have achieved the desired outcome by configuring the targets/default/engines field in the packages/ui/package.json file.

Regarding suggestion 2, I've been thinking about whether we could leverage Parcel's Multiple Targets feature to directly compile Logto into two versions: modern and legacy, instead of relying on configuration parameters. This approach could simplify the customization process and reduce the steps for building custom versions.