MCPcopy Index your code
hub / github.com/21st-dev/1code / refresh

Method refresh

src/main/auth-manager.ts:103–148  ·  view source on GitHub ↗

* Refresh the current session

()

Source from the content-addressed store, hash-verified

101 * Refresh the current session
102 */
103 async refresh(): Promise<boolean> {
104 const refreshToken = this.store.getRefreshToken()
105 if (!refreshToken) {
106 console.warn("No refresh token available")
107 return false
108 }
109
110 try {
111 const response = await fetch(`${this.getApiUrl()}/api/auth/desktop/refresh`, {
112 method: "POST",
113 headers: { "Content-Type": "application/json" },
114 body: JSON.stringify({ refreshToken }),
115 })
116
117 if (!response.ok) {
118 console.error("Refresh failed:", response.status)
119 // If refresh fails, clear auth and require re-login
120 if (response.status === 401) {
121 this.logout()
122 }
123 return false
124 }
125
126 const data = await response.json()
127
128 const authData: AuthData = {
129 token: data.token,
130 refreshToken: data.refreshToken,
131 expiresAt: data.expiresAt,
132 user: data.user,
133 }
134
135 this.store.save(authData)
136 this.scheduleRefresh()
137
138 // Notify callback about token refresh (so cookie can be updated)
139 if (this.onTokenRefresh) {
140 this.onTokenRefresh(authData)
141 }
142
143 return true
144 } catch (error) {
145 console.error("Refresh error:", error)
146 return false
147 }
148 }
149
150 /**
151 * Schedule token refresh before expiration

Callers 2

getValidTokenMethod · 0.95
scheduleRefreshMethod · 0.95

Calls 5

getApiUrlMethod · 0.95
logoutMethod · 0.95
scheduleRefreshMethod · 0.95
getRefreshTokenMethod · 0.80
saveMethod · 0.45

Tested by

no test coverage detected