Skip to content

Add browser callback/code authentication (WSO2/CAS) as alternative to password#17

Draft
MattXcz wants to merge 1 commit into
mainfrom
codex/add-google-and-apple-login-options
Draft

Add browser callback/code authentication (WSO2/CAS) as alternative to password#17
MattXcz wants to merge 1 commit into
mainfrom
codex/add-google-and-apple-login-options

Conversation

@MattXcz
Copy link
Copy Markdown
Owner

@MattXcz MattXcz commented Mar 4, 2026

Motivation

  • Add support for browser callback code/ticket or full callback URL so users who sign in via SSO (WSO2 Identity Server / Google/Apple) can authenticate without storing a password.
  • Keep existing password-based login while allowing a fallback for service-ticket style authentication.
  • Improve UX by exposing the new option in the config flow, translations and README.

Description

  • Introduced new config keys CONF_BROWSER_AUTH and CONF_SERVICE_TICKET and exposed them in const.py.
  • Extended the config flow (config_flow.py) to accept an optional browser_auth field, validate mutual exclusivity between password and browser callback input, and persist browser_auth (also saved as service_ticket for backwards compatibility).
  • Updated the API client (api.py) to accept browser_auth, added _login_with_browser_auth which accepts either a raw code/ticket or a full callback URL and exchanges it for an API token, and added _extract_browser_auth_value to parse the provided input.
  • Adjusted integration setup (__init__.py) to read browser_auth (or legacy service_ticket) from the config entry and pass it to the API client.
  • Updated user-facing text in README.md and translations (translations/cs.json and translations/en.json) to document the new authentication method and to add validation error messages (missing_auth_data, too_many_auth_methods).

Testing

  • No automated tests were added or executed as part of this change.

Codex Task

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant