mirror of
https://github.com/actualbudget/actual.git
synced 2026-03-10 20:23:07 -05:00
[Bug]: header auth prompting for a password [v25.2.1] #1907
Open
opened 2026-02-28 19:58:09 -06:00 by GiteaMirror
·
7 comments
No Branch/Tag Specified
master
matiss/oxlint-no-floating-promises-require-array-sort-compare
ai/custom-theme-dual-prefs
claude/fix-simplefin-batch-sync-O8LcD
matiss/fix-6804
claude/fix-simplefin-ssrf-T31gX
claude/release-notes-validation-X7rvR
add-claude-github-actions-1772738270730
react-query-rules
react-query-useSchedules
matiss/separate-lint-format
dependabot/npm_and_yarn/ajv-6.14.0
cursor/sync-performance-notification-9899
react-query-prefs
matiss/chunked-sync-and-progress-ux
v26.2.1
copilot/sub-pr-6880
fix-react-query-clear-on-close-budget
copilot/sub-pr-6140
feat/auto-note
feat/scoped-bank-sync
cursor/desktop-transactions-react-table-1d0c
fix-exhaustive-deps-App
copilot/fix-find-replace-bug
release/v26.2.0-pre
matiss/browser-tests
mobile-fix-drag-and-drop-across-groups
budget-table-v2
PayeeAutocomplete2
pglite
bugfix/plugins/fix-plugins-sw
feat/plugins/plugins-core-package
prerelease
matiss/unicode-minus-fix
cursor/fix-actual-github-issue-6206-gemini-3-pro-preview-9c37
TransactionFormPage
cursor/implement-mortgage-and-loan-account-type-78ca
tests-update-fill-with-pressSequentially
mobile/link-modal
deps/25.11
cursor/fix-update-vrt-apply-ci-job-dispatch-b324
sync-server-plugins
cursor/propose-patch-for-github-issue-5680-2a18
fix/compiler-preserve-inner-dollar-escapes
cursor/analyze-actual-budget-issue-and-propose-fix-5b70
coderabbitai/docstrings/0c070e5
cursor/add-wip-prefix-and-comment-to-prs-d78d
jfdoming/08-21-auto-focus-on-navigate-in-all-browsers
show-totals-on-mobile-budget-banners
allow-child-transactions-make-transfer
mobile-calculator-keyboard
payee-geolocation
enhance/restore_scroll_position
dm-fix-second-click-on-mobile-new-transaction-2
scrollToLocationBudget
alert-autofix-38
tsconfig-composite
mobile-fix-uncategorized-transactions-on-tracking-budgets
server-budget-handlers
fix-sql-injection-in-cleanup-template
non-chrome-draggable-workaround
mobile-budget-page-swipe-navigation
ts-db-all
stable
dark-theme-with-brand-colors
fix-mobile-delete-group
ts-db-select
UnderKoen/reconcile-context-menu
master-before-server-merge
v25.2.1
ts-runQuery
rename-redux-hooks
UnderKoen/3557-persist-state-in-history
remove-redux-CLOSE_BUDGET
fix-exhaustive-deps-errors-FinancesApp
redux-toolkit-createSlice-backup
accounts-function-component
ts-useSplitsExpanded
loot-core-server-package
useTransactios-in-TransactionEdit
react-aria-input
move-redux-to-desktop-client
QueryState-type
fix-themes-applied-late
mobile-vrts
revert-3295-spendingCardFix
react-aria-button-4
split-payee-on-mobile
twk3/pin-apis-crdt
notes-tag-autocomplete
ts-LoadBackup
dnd-kit
package-upgrades
v26.3.0
v26.2.1
v26.2.0
v26.1.0
v25.12.0
v25.11.0
v25.10.0
v25.9.0
v25.8.0
v25.7.1
v25.7.0
v25.6.1
v25.6.0
v25.5.0
v25.4.0
v25.3.1
v25.3.0
v25.2.1
v25.2.0
v25.1.0
v24.12.0
v24.11.0
v24.10.1
v24.10.0
v24.9.0
v24.8.0
v24.7.0
v24.6.0
v24.5.0
v24.4.0
v24.3.0
v24.2.0
v24.1.0
v23.12.0
v23.11.0
v23.10.0
v23.9.0
v23.8.1
v23.8.0
v23.7.2
v23.7.1
v23.7.0
v23.6.0
v23.5.0
v23.4.2
v23.4.1
v23.4.0
v23.3.2
v23.3.0
v23.2.9
v23.2.5
v23.1.12
v22.12.9
Labels
Clear labels
AI generated
API
bank sync
budgeting
bug
can’t replicate
dependencies
docker
documentation
electron
experimental feature
feature
feedback
goal templates
good first issue
help wanted
importers
maintenance
needs info
needs testing
needs triage
needs votes
openid
payees
pull-request
regression
reports
responsive
rules
schedules
server
✨ merged
split transactions
tech debt
theme
transaction import
transaction reconciliation
transactions
translations
upstream
user interface
✅ approved
wontfix
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/actual#1907
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 @aroberts on GitHub (Mar 1, 2025).
Verified issue does not already exist?
What happened?
I've gotten actual running with header auth, but I'm still seeing the password prompt on app load. Diving through the issues, it looks like this should not be happening (#2781). Is this a regression, potentially related to the recent work with multi-user, or is there something I am not configuring right?
if I type anything into the password box, it takes me to the same data, and the logs indicate it's accepting my header login.
relevant config:
is there anything obvious missing?
How can we reproduce the issue?
Launch actual with header auth configured; visit any actual page
Where are you hosting Actual?
docker
What browsers are you seeing the problem on?
Safari, Firefox
Operating System
None
@matthewkdies commented on GitHub (Mar 12, 2025):
I've also run into this bug! Using Caddy, here's my Caddyfile configuration
When requests are directed to Actual, they have the necessary header:
However this does not work for me. In the Actual logs, I see the following:
It is unprotected by password, and returns the following raw JSON:
However in the Docker Compose file, I have the following:
And they show up in the container as well:
For what it's worth, there is an experimental feature for OpenID: https://actualbudget.org/docs/experimental/oauth-auth/.
@hobbit44 commented on GitHub (Mar 31, 2025):
I'm having this on a fresh install, using openid and multiuser. What I'm noticing is that when you navigate to the root url, you get redirected to /login with the "Sign in with OpenID" button. But if you navigate directly to /login, you get the password prompt and it will fail to login. You have to go back to the home to get the correct redirect state.
@paulcoates commented on GitHub (May 17, 2025):
I'm also experiencing this issue. I've verified that my reverse proxy and actual-server environment variables are configured correctly using the following CURL request to the
/account/loginendpoint which returns a valid auth token... so header auth looks properly configured.However, my browser based requests are still getting redirected to
/account/needs-bootstrap/. I had a look at the code for that route from the initial PR in the actualbudget/actual-server repo that added the header auth functionality and compared it to its current state.c23cbb4b0e/packages/sync-server/src/app-account.js (L32-L45)The call to
listLoginMethodsappears to get the login methods associated to accounts in the database, but I don't think 'header' will ever be returned - as the database isn't aware when that is enabled. So unless OpenID has been turned on, this will always return a single value, andgetLoginMethod()never gets called like it used to.I think that is why @hobbit44 was able to get partial resolution when openid and multiuser was enabled, as that situation would mean
getLoginMethodgets called, and header auth would be identified.I think this a a by-product of a fix in OpenID implementation (most recently #4533) that introduced the ternary logic for
loginMethod. @lelemm would you have any thoughts as to whether this is on the right track?@matthewkdies commented on GitHub (May 17, 2025):
@paulcoates I just wanted to make a quick response to you above comment to say that is great troubleshooting and documentation! It is really clear while also being succinct, something I strive to do in my comments as well. Hope I'm not bothering you with a ping to say this!
With all of that being said, a quick way to confirm this would be to revert the used version of Actual to one before OpenID Connect was introduced as a feature and test that. I will do this when I get home later, if I remember to haha!
@lelemm commented on GitHub (May 19, 2025):
You are right, @paulcoates. But, I think there is something else making the header auth not work. I'm just not finding time to look at this.
If you want to tackle this and send it to me for review, I would gladly review it.
@pyrho commented on GitHub (May 24, 2025):
I've made an attempt at a fix, some assumptions were made.. I'm not 100% sure of what I did; worst case it serves as a base to a proper fix for someone who actually knows what they're doing.
I'm currently running a container that has my changes, with header auth working.
I built it with this command:
docker build -f packages/sync-server/docker/alpine.Dockerfile -t actual-header-auth-fix)And here are the environment variables I have set:
@ky1vstar commented on GitHub (Aug 27, 2025):
I've discovered a workaround, that results in working forward auth setup via Traefik and Actual Budget in docker compose.
Make sure, that you know what you are doing since it required direct SQLite manipulations.
You need to execute following commands inside a container: