Skip to content

Commit 8dfdeb4

Browse files
committed
feat: add getUser method
1 parent d3b8eec commit 8dfdeb4

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

packages/core/auth-js/src/GoTrueClient.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,13 +323,15 @@ export default class GoTrueClient {
323323
* Inside a browser context, `user()` will return the user data, if there is a logged in user.
324324
*
325325
* For server-side management, you can get a user through `auth.api.getUserByCookie()`
326+
* @deprecated use `getUser()` instead
326327
*/
327328
user(): User | null {
328329
return this.currentUser
329330
}
330331

331332
/**
332333
* Returns the session data, if there is an active session.
334+
* @deprecated use `getSession()` instead
333335
*/
334336
session(): Session | null {
335337
return this.currentSession
@@ -371,6 +373,35 @@ export default class GoTrueClient {
371373
return { session, error: null }
372374
}
373375

376+
/**
377+
* Returns the user data, refreshing the session if necessary.
378+
*/
379+
async getUser(): Promise<
380+
| {
381+
user: User
382+
error: null
383+
}
384+
| {
385+
user: null
386+
error: ApiError
387+
}
388+
| {
389+
user: null
390+
error: null
391+
}
392+
> {
393+
const { session, error } = await this.getSession()
394+
if (error) {
395+
return { user: null, error }
396+
}
397+
398+
if (!session) {
399+
return { user: null, error: null }
400+
}
401+
402+
return { user: session.user, error: null }
403+
}
404+
374405
/**
375406
* Force refreshes the session including the user data in case it was updated in a different session.
376407
*/

0 commit comments

Comments
 (0)