@@ -9,12 +9,7 @@ import {
99 writeGlobalConfig ,
1010 type EnsembleUserConfig ,
1111} from '../config/globalConfig.js' ;
12- import {
13- decodeIdTokenClaims ,
14- getIdTokenExpiryMs ,
15- isTokenExpired ,
16- normalizeExpiresAt ,
17- } from '../auth/token.js' ;
12+ import { decodeIdTokenClaims , isTokenExpired } from '../auth/token.js' ;
1813import { resolveVerboseFlag } from '../core/cliError.js' ;
1914import { getEnsembleAuthBaseUrl } from '../config/env.js' ;
2015import { ui } from '../core/ui.js' ;
@@ -61,20 +56,19 @@ export async function loginCommand(options: LoginOptions = {}): Promise<void> {
6156 const idToken = existing ?. user ?. idToken ;
6257 if ( idToken && ! isTokenExpired ( idToken ) ) {
6358 const claims = decodeIdTokenClaims ( idToken ) ;
64- const normalizedExpiresAt = existing . user ?. expiresAt ?? getIdTokenExpiryMs ( idToken ) ;
6559 const mergedUser = {
66- ...( existing . user ?? { uid : claims . uid ?? 'cli-user' , idToken } ) ,
6760 uid : existing . user ?. uid ?? claims . uid ?? 'cli-user' ,
6861 name : existing . user ?. name ?? claims . name ?? undefined ,
6962 email : existing . user ?. email ?? claims . email ?? undefined ,
7063 idToken,
71- expiresAt : normalizedExpiresAt ,
64+ refreshToken : existing . user ?. refreshToken ,
7265 } ;
7366
7467 if (
68+ existing . user ?. uid !== mergedUser . uid ||
7569 existing . user ?. name !== mergedUser . name ||
7670 existing . user ?. email !== mergedUser . email ||
77- existing . user ?. expiresAt !== mergedUser . expiresAt
71+ existing . user ?. refreshToken !== mergedUser . refreshToken
7872 ) {
7973 await writeGlobalConfig ( {
8074 ...existing ,
@@ -101,7 +95,6 @@ export async function loginCommand(options: LoginOptions = {}): Promise<void> {
10195 const tokenPromise = new Promise < {
10296 token : string ;
10397 refreshToken ?: string ;
104- expiresAt ?: number ;
10598 } > ( ( resolve , reject ) => {
10699 const timeout = setTimeout ( ( ) => {
107100 server . close ( ) ;
@@ -129,7 +122,6 @@ export async function loginCommand(options: LoginOptions = {}): Promise<void> {
129122 const data = JSON . parse ( body ) as {
130123 token ?: string ;
131124 refreshToken ?: string ;
132- expiresAt ?: number | string ;
133125 state ?: string ;
134126 } ;
135127 // Some auth providers may not echo back our `cliState` in the callback payload.
@@ -145,7 +137,6 @@ export async function loginCommand(options: LoginOptions = {}): Promise<void> {
145137 resolve ( {
146138 token : data . token ,
147139 refreshToken : typeof data . refreshToken === 'string' ? data . refreshToken : undefined ,
148- expiresAt : normalizeExpiresAt ( data . expiresAt ) ,
149140 } ) ;
150141 } else {
151142 res . writeHead ( 400 , {
@@ -191,7 +182,6 @@ export async function loginCommand(options: LoginOptions = {}): Promise<void> {
191182 let callbackData : {
192183 token : string ;
193184 refreshToken ?: string ;
194- expiresAt ?: number ;
195185 } ;
196186 try {
197187 callbackData = await tokenPromise ;
@@ -203,7 +193,6 @@ export async function loginCommand(options: LoginOptions = {}): Promise<void> {
203193
204194 const token = callbackData . token ;
205195 const { uid, name, email } = decodeIdTokenClaims ( token ) ;
206- const expiresAt = callbackData . expiresAt ?? getIdTokenExpiryMs ( token ) ;
207196
208197 const newConfig : EnsembleUserConfig = {
209198 ...existing ,
@@ -213,7 +202,6 @@ export async function loginCommand(options: LoginOptions = {}): Promise<void> {
213202 email : email ?? undefined ,
214203 idToken : token ,
215204 refreshToken : callbackData . refreshToken ,
216- expiresAt,
217205 } ,
218206 } ;
219207
0 commit comments