canonical / canonical/authd

Local password login fails when refreshed token can't be verified

Open
#1,824 1 comment 0 reactions 0 assignees View on GitHub
jira
Dominant language
Go
Stars
308
Forks
41
Avg merge
2d 4h
Merged PRs (30d)
58

Description

### Problem

When unlocking the screen with a local password, login fails if the refreshed token cannot be verified, even when `force_access_check_with_provider` is disabled.

For example, an incorrect system clock can make the token appear expired. The logs show:

> Failed to refresh token: access token verification failed: token expired at 1787574647 (now: 1787575275)

### Expected behavior

- If `force_access_check_with_provider = false` (the default), a valid local password authenticates the user unless the token refresh clearly indicates that the user should not have access anymore (e.g. when the user or device was disabled).
- If `force_access_check_with_provider = true`, local password authentication requires a successful token refresh; any token refresh failure denies login.

Contributor guide

Open the contributing guide

Research direction

Start by tracing the local password login flow and how it handles refreshed-token verification, with particular attention to the force_access_check_with_provider setting. Compare behavior for token-refresh failures when the setting is false versus true; done means valid local-password login is preserved in the first case unless access is clearly revoked, while every refresh failure denies login in the second.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
authentication, backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.