mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-02-13 11:19:37 +03:00
OpenID Connect (OIDC) with Google (Sessions issue?) #4297
Closed
opened 2026-02-05 08:27:50 +03:00 by OVERLORD
·
7 comments
No Branch/Tag Specified
development
l10n_development
release
v25-12
llm_only
vectors
v25-11
docker_env
drawio_rendering
user_permissions
ldap_host_failover
svg_image
prosemirror
captcha_example
fix/video-export
v25.12.3
v25.12.2
v25.12.1
v25.12
v25.11.6
v25.11.5
v25.11.4
v24.11.4
v25.11.3
v25.11.2
v25.11.1
v25.11
v25.07.3
v25.07.2
v25.07.1
v25.07
v25.05.2
v25.05.1
v25.05
v25.02.5
v25.02.4
v25.02.3
v25.02.2
v25.02.1
v25.02
v24.12.1
v24.12
v24.10.3
v24.10.2
v24.10.1
v24.10
v24.05.4
v24.05.3
v24.05.2
v24.05.1
v24.05
v24.02.3
v24.02.2
v24.02.1
v24.02
v23.12.3
v23.12.2
v23.12.1
v23.12
v23.10.4
v23.10.3
v23.10.2
v23.10.1
v23.10
v23.08.3
v23.08.2
v23.08.1
v23.08
v23.06.2
v23.06.1
v23.06
v23.05.2
v23.05.1
v23.05
v23.02.3
v23.02.2
v23.02.1
v23.02
v23.01.1
v23.01
v22.11.1
v22.11
v22.10.2
v22.10.1
v22.10
v22.09.1
v22.09
v22.07.3
v22.07.2
v22.07.1
v22.07
v22.06.2
v22.06.1
v22.06
v22.04.2
v22.04.1
v22.04
v22.03.1
v22.03
v22.02.3
v22.02.2
v22.02.1
v22.02
v21.12.5
v21.12.4
v21.12.3
v21.12.2
v21.12.1
v21.12
v21.11.3
v21.11.2
v21.11.1
v21.11
v21.10.3
v21.10.2
v21.10.1
v21.10
v21.08.6
v21.08.5
v21.08.4
v21.08.3
v21.08.2
v21.08.1
v21.08
v21.05.4
v21.05.3
v21.05.2
v21.05.1
v21.05
v21.04.6
v21.04.5
v21.04.4
v21.04.3
v21.04.2
v21.04.1
v21.04
v0.31.8
v0.31.7
v0.31.6
v0.31.5
v0.31.4
v0.31.3
v0.31.2
v0.31.1
v0.31.0
v0.30.7
v0.30.6
v0.30.5
v0.30.4
v0.30.3
v0.30.2
v0.30.1
v0.30.0
v0.29.3
v0.29.2
v0.29.1
v0.29.0
v0.28.3
v0.28.2
v0.28.1
v0.28.0
v0.27.5
v0.27.4
v0.27.3
v0.27.2
v0.27.1
v0.27
v0.26.4
v0.26.3
v0.26.2
v0.26.1
v0.26.0
v0.25.5
v0.25.4
v0.25.3
v0.25.2
v0.25.1
v0.25.0
v0.24.3
v0.24.2
v0.24.1
v0.24.0
v0.23.2
v0.23.1
v0.23.0
v0.22.0
v0.21.0
v0.20.3
v0.20.2
v0.20.1
v0.20.0
v0.19.0
v0.18.5
v0.18.4
v0.18.3
v0.18.2
v0.18.1
v0.18.0
v0.17.4
v0.17.3
v0.17.2
v0.17.1
v0.17.0
v0.16.3
v0.16.2
v0.16.1
v0.16.0
v0.15.3
v0.15.2
v0.15.1
v0.15.0
v0.14.3
v0.14.2
v0.14.1
v0.14.0
v0.13.1
v0.13.0
v0.12.2
v0.12.1
v0.12.0
v0.11.2
v0.11.1
v0.11.0
v0.10.0
v0.9.3
v0.9.2
v0.9.1
v0.9.0
v0.8.2
v0.8.1
v0.8.0
v0.7.6
v0.7.5
v0.7.4
v0.7.3
0.7.2
v.0.7.1
v0.7.0
v0.6.3
v0.6.2
v0.6.1
v0.6.0
v0.5.0
Labels
Clear labels
🎨 Design
📖 Docs Update
🐛 Bug
🐛 Bug
:cat2:🐈 Possible duplicate
💿 Database
☕ Open to discussion
💻 Front-End
🐕 Support
🚪 Authentication
🌍 Translations
🔌 API Task
🏭 Back-End
⛲ Upstream
🔨 Feature Request
🛠️ Enhancement
🛠️ Enhancement
🛠️ Enhancement
❤️ Happy feedback
🔒 Security
🔍 Pending Validation
💆 UX
📝 WYSIWYG Editor
🌔 Out of scope
🔩 API Request
:octocat: Admin/Meta
🖌️ View Customization
❓ Question
🚀 Priority
🛡️ Blocked
🚚 Export System
♿ A11y
🔧 Maintenance
> Markdown Editor
pull-request
Mirrored from GitHub Pull Request
No Label
🐕 Support
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/BookStack#4297
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 @jorismak on GitHub (Nov 3, 2023).
Attempted Debugging
Searched GitHub Issues
Describe the Scenario
Using the solidnerd/bookstack docker image
I can't seem to get a storage/logs/laravel.log file. All the folders are 'chmod 777' and I've created the file with the www-data user. Userid matches my host www-data and the docker www-data, so really no issue there. I can run a shell in the running docker image (as the www-data user) and create a file in storage/logs no problem. Also appending (with 'echo') to to existing zero-byte laravel.log file works. So it really doesn't seem to be a permission issue.
The 'logs' that I see as the docker container are the logs of the apache webserver.
I first setup a working OAuth 'social' login with Google in our workspace. That worked. So I have a working 'Login with Google' button, and users are auto-registered with it and logging in works fine.
But, we want to use it as the only option. So instead of AUTH_METHOD=standard with a google social login, I configure OpenID connect. I use the same oauth client_id / client_secret, add the redirect url in Google, configure OIDC_ISSUERas 'https://accounts.google.com'.
Looking through the code it seems to be that the OAuth State doesn't match what is in the session.
I notice that every time I refresh a page (even the 404 page) I get another value in the session cookie. Even Javascripts and such set a different session cookie value (so if you watch in the Chrome devtools in the 'Application' tab, you'll see the session cookie changes very rapidly on page-reload). But this might be by design?
The thing is, it works fine on Firefox it seems ?!?!. I tried in Incognito windows, disabling all extensions, disabling tracking-prevention, ...
Since I can't seem to get any error logs it's kind hard to get a feeling where to look next. In the 'network' tab I do see that Google gives back a state (of course), but I'm suspicious of the 'bookstack_session' cookie changing value on each request(cookie-parameters seem fine otherwise).
Also as a reminder, changing the AUTH_METHOD to 'standard' and logging in seems to work fine (as did the Google 'social' login). So sessions do seem to work fine.
All my env vars:
Exact BookStack Version
23.10.0
Log Content
No response
Hosting Environment
Docker image running PHP 8.2, Linux Ubuntu 22.04 docker host, https://github.com/solidnerd/docker-bookstack docker image.
The host is running nginx and using that as a reverse proxy to the docker exposed port
@ssddanbrown commented on GitHub (Nov 3, 2023):
Hi @jorismak,
For this scenario, I wouldn't expect anything to be logged to the log file, so possibly just nothing being logged here.
Yeah, that's intentional in correct working usage.
Yeah, that's correct.
So I'd expect that something is affecting cookie/session state.
Since it sounds like it's specifically affecting this flow (since other BookStack use sounds unaffected) that makes me thing that something like Strict same site cookies are in use. Do you have any configuration, on your nginx proxy or at any other HTTP layer (other proxies or things like Cloudflare) in play, that is setting additional HTTP headers/options for security?
Additionally, are you able to view the details of the session cookie in the browser and confirm the
SameSiteproperty at all?@jorismak commented on GitHub (Nov 3, 2023):
Thanks for thinking along!
It seems it's Lax (didn't change it anywhere).
I think I set cookie secure to 'true' at the beginning, later removed it, but it seems it set at 'secure' anyway (which seems correct to me).
No cloudflare or anything. From the browser directly to our VPS server where nginx takes the request, which reverse-proxies to the docker container (which is running Apache with the php module if I see it right).

@ssddanbrown commented on GitHub (Nov 3, 2023):
Okay, those BookStack Cookies look fine, although that extra
shortscccookie piques my interest.Looks potentially related to some kind of cookie control system?
Depending on where that exists, could maybe be affecting things.
Otherwise, it's worth checking the flow back ground Google during the OIDC login, to ensure there are no additional redirects within the journey that are throwing things off.
For this, I'd watch the Network tab of the devtools, with "Persist Logs" (or similar) enabled, then go through the auth flow.
After going through google you should be redirected once back to
<bookstack_url>/oidc/callback. If this has any double slashes, or if there is an extra redirect to a similar URL, or if the one redirect back does not exactly match the instance URL (including https/http starting protol), then that'd be worth looking into further.@jorismak commented on GitHub (Nov 3, 2023):
Thanks, has to be next week again but I'll look at it.
I had the network tab open to see things before, and there are some 'pings'
to play.google.com, I guess for logging / analytics for the OAuth setup or
something.
'shortscc' might be an browser extension to hide Youtube Shorts.
Interesting that it injects itself in all domains.....
On Fri, 3 Nov 2023 at 12:43, Dan Brown @.***> wrote:
@ssddanbrown commented on GitHub (Dec 3, 2023):
Since there's been no further follow-up over the last month I'll close this off but feel free to comment, and this can be re-opened if required.
@jorismak commented on GitHub (Dec 3, 2023):
Oh.. excuses for not following up. Election season here exploded and my attention was elsewhere .
About this issue , it started 'magically' working. Which I hate cause I don't like not having a clear cause.t deployment was in git through Ansible . Looking back I see no clear changes in config that could've caused it to work (slashes, redirect url, etc...). Maybe the config over at Google needed time to accept to a change or something ?
Rightfully closed right now, I'll open another issue if it's ever bothering me again . Thanks for helping !
@ssddanbrown commented on GitHub (Dec 3, 2023):
Good to hear it did eventually start working.
That could totally be it! Don't think it's the first time I've had someone report strange behaviour with Google Auth which was fixed by waiting a day.