Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ory tunnel does not respect the Account Experience > Custom UI > Login UI setting #342

Open
3 of 5 tasks
EcBen opened this issue Feb 9, 2024 · 2 comments
Open
3 of 5 tasks
Labels
bug Something is not working.

Comments

@EcBen
Copy link

EcBen commented Feb 9, 2024

Preflight checklist

Ory Network Project

No response

Describe the bug

The ory tunnel is running on a server, for example: https://auth.example.com. An API server is running on https://api.example.com. The API server is configured to check authentication and send the user to the login page. This works, but the ory tunnel running on https://auth.example.com does not work with the Account Experience > Custom UI > Login UI setting.

I have changed the Account Experience > Custom UI > Login UI setting to /login. When the API server redirects the user to login, it gets back https://auth.example.com/login?flow=some-flow-uuid-here, which is correct, and sends the user's browser there. However, the ory tunnel does not respond on /login. Visiting the URL returns:

{
  "error": {
    "code": 404,
    "message": "No resource found using the specified path.",
    "reason": "Invalid path",
    "status": "Not Found"
  }
}

However, if I change the URL in the browser to: https://auth.example.com/ui/login?flow=some-flow-uuid-here, it shows the login page and works. If I change the Account Experience > Custom UI > Login UI setting to /ui/login the redirect and login works correctly.

I would expect when the Account Experience > Custom UI > Login UI setting is /login, the ory tunnel would use that and work correctly, but it does not.

I also have a web app that is setup with ory and renders the Login page at /login, which works fine. Which is why the Account Experience > Custom UI > Login UI setting is /login, not /ui/login. But when authenticating from the API server, which redirects to the ory tunnel on https://auth.example.com, the /login setting does not work.

The ory tunnel should use the same Account Experience > Custom UI > Login UI setting when it exposes the URLs.

Reproducing the bug

  1. Set your Account Experience > Custom UI > Login UI setting to /login instead of the default /ui/login
  2. Run the ory tunnel for your project
  3. Run a server/api/etc. that using Ory for authentication and redirects unauthenticated users to the ory tunnel. This is done by calling /self-service/login/browser?return_to=server-api-requested-URL-here to get the flow.RequestUrl response and redirects the browser there
  4. Visit the server/api/etc. and get redirected to https://auth.example.com/login?flow=some-flow-uuid-here, which doesn't load and shows:
{
  "error": {
    "code": 404,
    "message": "No resource found using the specified path.",
    "reason": "Invalid path",
    "status": "Not Found"
  }
}
  1. Change URL to https://auth.example.com/ui/login?flow=some-flow-uuid-here, which does work

Relevant log output

No response

Relevant configuration

No response

Version

v0.3.2

On which operating system are you observing this issue?

Linux

In which environment are you deploying?

None

Additional Context

No response

@EcBen EcBen added the bug Something is not working. label Feb 9, 2024
@EcBen
Copy link
Author

EcBen commented Feb 15, 2024

I tried changing the oauth2-config to /login with this command:

ory patch oauth2-config project-uuid-here --replace "/urls/login=\"/login\""

But that didn't change anything with the above issue.

Is using a different login URL for ory tunnel possible? At this point, I'm going to have to change the webapp's URL to match /ui/login so things work correctly.

@zach-pp
Copy link

zach-pp commented Feb 23, 2024

Running into a similar issue. We're developing a custom UI, and have set the custom base UI URL value appropriately. Things work as expected on the deployed dev site itself when we log in via Google. However, when running locally with ory tunnel (http://localhost:3000 for the UI), we're redirected to our local tunnel (http://localhost:4000). Seems like we should be able to set the custom base UI URL for the tunnel, but I'm unsure how.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something is not working.
Projects
None yet
Development

No branches or pull requests

2 participants