mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-05-30 23:40:40 +02:00
[Bug]: "Invalid callback URL - must be same-origin" #2960
Closed
opened 2026-04-25 00:12:21 +02:00 by adam
·
17 comments
No Branch/Tag Specified
master
book_tags_genres_dedupe
episode_download_fallback
Issue-4540-SortBy-StartedDate-and-FinishedDate
episode_meta_tagging
fix_authorize_race_condition
redirect_transcode_requests
progress_updated_sort
fix_ereader_socket_event
fix_change_empty_root_password
fix_podcast_session_track_index
fix_set_token
session_modal_user
localize_durations
fix_oidc_create_user
jwt_auth_refactor
fix_scanner_deleting_single_file_books
fix_mediaprogress_updatedat_2
experimental_next_client
podcast_episode_duration
episode-timestamps-clickable
book_author_secondary_sort_title
podcast_useragents
pathexists_user_access
fix_pathexists_join
book_author_secondary_sort
clean_duplicate_mediaprogress
sanitize_html_description
trix_prevent_attachments
check_path_api_fix
fix_mediaprogress_updatedat
increase_express_json_limit
fix_dockerfile_nunicode
search_episodes
audiobook_tools_update
episode_secondary_sorts
hls_stream_url_update
new_session_track_endpoint
audiobook_tools_enhancements
watcher_rescans_update
player_track_tooltip
fix_exclude_prefixes_crash
socket_item_events
fix_podcast_episode_scanner_promise
new_stats_controller
count_cache_for_userpermissions
parsing-opf-v3
validate_migration_files
fix-quick-match-all-crash
fix-chapter-end-sleep-timer
stringify_sequelize_query
remove-col-ambiguity
fix_next_prev_edit_description
details_trim_whitespace
fix_content_url_basepath
fix_logger_fatal
progress_bar_visibility
batch-edit-populate-map-details
feed_generator_updates
bookmark-modal-updates
migrate-library-item-in-scanner
migrate-new-library-items
migrate-podcasts-new-library-item-2
migrate-podcasts-new-library-item
fix-remove-episode-from-playlist
playback-session-use-new-library-item
refactor-library-item
fix-heatmap-caption
feed-episodes-upsert
share-media-player-media-session-api
remove-old-playlist
remove_old_collection_object
plugin-implementation-demo
feed_migration
refactor-feeds-from-item
fix_remove_authors_no_books
v2.17.3-fk-constraints-migration
migrations-first-upgrade
sqlite_2
feature/nuxt-target-server
waveform
sqlite
playlists
video
v2.35.1
v2.35.0
v2.34.0
v2.33.2
v2.33.1
v2.33.0
v2.32.1
v2.32.0
v2.31.0
v2.30.0
v2.29.0
v2.28.0
v2.27.0
v2.26.3
v2.26.2
v2.26.1
v2.26.0
v2.25.1
v2.25.0
v2.24.0
v2.23.0
v2.22.0
v2.21.0
v2.20.0
v2.19.5
v2.19.4
v2.19.3
v2.19.2
v2.19.1
v2.19.0
v2.18.1
v2.18.0
v2.17.7
v2.17.6
v2.17.5
v2.17.4
v2.17.3
v2.17.2
v2.17.1
v2.17.0
v2.16.2
v2.16.1
v2.16.0
v2.15.1
v2.15.0
v2.14.0
v2.13.4
v2.13.3
v2.13.2
v2.13.1
v2.13.0
v2.12.3
v2.12.2
v2.12.1
v2.12.0
v2.11.0
v2.10.1
v2.10.0
v2.9.0
v2.8.1
v2.8.0
v2.7.2
v2.7.1
v2.7.0
v2.6.0
v2.5.0
v2.4.4
v2.4.3
v2.4.2
v2.4.1
v2.4.0
v2.3.5
v2.3.4
v2.3.3
v2.3.2
v2.3.1
v2.3.0
v2.2.23
v2.2.22
v2.2.21
v2.2.20
v2.2.19
v2.2.18
v2.2.17
v2.2.16
v2.2.15
v2.2.14
v2.2.13
v2.2.12
v2.2.11
v2.2.10
v2.2.9
v2.2.8
v2.2.7
v2.2.6
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.5
v2.1.4
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.24
v2.0.23
v2.0.22
v2.0.21
v2.0.20
v2.0.19
v2.0.18
v2.0.17
v2.0.16
v2.0.15
v2.0.14
v2.0.13
v2.0.12
v2.0.11
v2.0.10
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v1.7.2
v1.7.1
v1.7.0
v1.6.0
v1.5.5
v1.5.0
v1.4.11
v1.4.9
v1.4.7
v1.4.6
v1.4.4
v1.4.2
v1.4.0
v1.4.1
v1.3.4
v1.3.3
v1.3.1
v1.2.8
v1.2.6
v1.2.5
v1.2.4
v1.2.1
v1.1.15
v1.1.14
v1.1.13
v1.1.12
v1.1.11
v1.1.10
v1.1.9
v1.1.8
v1.0.0
0.9.61-beta.0
0.9.61-beta
Labels
Clear labels
authentication
backlog
bug
chapter editor
config-issue
ebooks
encoding/embedding
enhancement
help wanted
listening sessions & progress
planned
possible plugin
progress sync
pull-request
sorting/filtering/searching
unable to reproduce
upload
users & permissions
waiting
Mirrored from GitHub Pull Request
No Label
bug
Milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
adam (Adam Melkus)
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/audiobookshelf#2960
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @Pimmetje on GitHub (Aug 20, 2025).
What happened?
My single sign-on does not work anymore
What did you expect to happen?
A working login flow
Steps to reproduce the issue
Try to open the page unauthenticated i get "Invalid callback URL - must be same-origin"
Audiobookshelf version
2.28.0
How are you running audiobookshelf?
Docker
What OS is your Audiobookshelf server hosted from?
Linux
If the issue is being seen in the UI, what browsers are you seeing the problem on?
None
Logs
Additional Notes
Maybe it is as simple as adding some headers to the proxy server but i have no clue where the expected http://book.mydomain.com comes from.
@nichwall commented on GitHub (Aug 25, 2025):
This sounds like a misconfigured reverse proxy, assuming you have verified that you entered https in both Audiobookshelf and your OIDC provider configuration.
Can you share your reverse proxy configuration?
@Vito0912 commented on GitHub (Aug 25, 2025):
Probably unrelated but I had the same issue when loading a backup from my default server to my dev server. I had to completely disable OIDC to get it working again. No reverse proxy in use at all.
I am very positive that this has to do with the fixed security issue.
Just wanted to leave this here as I thought I just miscliked things
@njack21 commented on GitHub (Aug 27, 2025):
Same issue. It was working previously. I blew away my OIDC configuration and started over, but am still having the issue.
I am using Nginix Proxy Manager and have made no changes to the configuration since it was previously working.
Details Tab
Custom Locations
SSL
Advanced
@tomatmonkeyturf commented on GitHub (Aug 28, 2025):
Same issue. Mine was also working previously. Latest update seems to have broken OIDC through a reverse proxy.
AudioBookShelf in Docker. SSO provider Authentik. Reverse Proxy NGINX Proxy Manager. Proxy manager config is the same as njack21
The application seems be able to use OIDC accessing it directly with host and port. I had to disable OIDC in AudioBookShelf to be able to login through the proxy manager.
@alindt commented on GitHub (Aug 29, 2025):
I had to revert to v2.27.0, it's the last version that works.
@Pimmetje commented on GitHub (Aug 29, 2025):
I have a docker container behind a HA-proxy. I need to know how how the expected value is determined. Than i am most likely be able to fix it.
@Vito0912 commented on GitHub (Aug 30, 2025):
@Pimmetje
Can you check where it tries to redirect you when you click the Login with OpenID button?
I have never worked with Nuxt, so I don’t know why it behaves the way it does, but we set a
serverUrlsomewhere:https://github.com/advplyr/audiobookshelf/blob/master/client/pages/login.vue#L135C1-L135C97
This does not send you to your current host, but instead to whatever is set in the env. That is a problem if the callback will send you to your current address. Maybe I am missing something, but this makes no sense to me. Of course, the host will not match if the env is wrong.
In addition to this, I am not sure (and I think this makes the problem worse) that the host header gets overwritten by somewhat, at least in dev builds.
I make the request with
Host: 192.168.178.100:3000, but the header received in the validation method ishost: 'localhost:3333', which matches the address in theserverUrlenv. So wherever this is set, it seems to be wrong (Note: In dev builds is always localhost:3333). Because of this, it does not even work to manually go to the same host.I get redirected to:
http://localhost:3333/audiobookshelf/auth/openid?callback=http://192.168.178.100:3000/audiobookshelf/loginIf I change it manually to the correct values:
http://192.168.178.100:3000/audiobookshelf/auth/openid?callback=http://192.168.178.100:3000/audiobookshelf/loginThe host is still seen as
localhost:3333and it fails.It works on all my production systems, so I don’t know why some of you have this issue, but I guess the
serverUrlis set to http for the OP e.g.@Pimmetje commented on GitHub (Sep 1, 2025):
I get the following redirect:
https://audiobookshelf.example.org/audiobookshelf/auth/openid?callback=https://audiobookshelf.example.org/audiobookshelf/login
So in my case it detects/redirects to the correct url. Only the verification does not compare to the correct url.
@Vito0912 commented on GitHub (Sep 1, 2025):
I am not sure if this will fix it for you, but as for NPM it sent a wrong proto:
'x-forwarded-proto': 'http, https'(It should just be http or https) https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/X-Forwarded-Proto
I just assume HA-proxy does the same. #4635 should fix this.
@Sapd commented on GitHub (Sep 2, 2025):
Hello,
this change was made by me and advplyr because of a high security issue in regards to redirects. You should not revert back to an old version.
Make sure that
x-forwarded-protois correctly set. Given your error message, your reverse proxy is not correctly set up.The code here does that:
If x-forwarded-proto is not set, it might fall back to http.
@Vito0912 commented on GitHub (Sep 2, 2025):
@Sapd NPM by default appends a list of protocols used. See #4635 which why it fails for so many.
I got this reproduced on a completely fresh install with minimal setup and all defaults left on.
@Sapd commented on GitHub (Sep 2, 2025):
I see. I checked your code and LGTM.
@github-actions[bot] commented on GitHub (Oct 8, 2025):
Fixed in v2.30.0.
@Pimmetje commented on GitHub (Oct 10, 2025):
Added header X-Forwarded-Proto https (using set header in ha proxy)
Now it is working thanks for the fix.
@jvines commented on GitHub (Oct 11, 2025):
This keeps happening to me. I am in 2.30.0, but still get the error when using authentik:
@Vito0912 commented on GitHub (Oct 11, 2025):
@jvines What RP do you use?
Make sure you provide the
X-Forwarded-Proto. From aboves comment e.g. this is not added for ha proxy@jvines commented on GitHub (Oct 13, 2025):
Sorry for the noobish question, but how would I check that with nginx proxy manager?