Harden persisted authentication recovery

Treat malformed authentication records as missing so browser sign-in can recover, preserve real file-read failures, and pin the Azure Identity persistence dependencies exactly.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Alex Yang (DevDiv)
2026-07-20 14:32:51 -07:00
parent 59fc5616ec
commit 463a876284
3 changed files with 35 additions and 5 deletions
+12 -3
View File
@@ -28,14 +28,23 @@ let legacyAuthCacheRemoved = false;
useIdentityPlugin(cachePersistencePlugin);
async function loadAuthenticationRecord() {
export async function loadAuthenticationRecord({
readFile = fs.readFile,
deserialize = deserializeAuthenticationRecord,
authRecordFile = AUTH_RECORD_FILE,
} = {}) {
let serialized;
try {
const serialized = await fs.readFile(AUTH_RECORD_FILE, "utf-8");
return deserializeAuthenticationRecord(serialized);
serialized = await readFile(authRecordFile, "utf-8");
} catch (error) {
if (error?.code === "ENOENT") return undefined;
throw error;
}
try {
return deserialize(serialized);
} catch {
return undefined;
}
}
async function saveAuthenticationRecord(record) {