跳到主要内容

useAccount

The useAccount hook provides access to a open clothes user's account data in local storage.

Use this hook to tap into the account state that is stored in the browser.

To load the account data, or update it, refer to the useBackend hook instead.

Example

import { useAccount } from '@openclothes/react/hooks/useAccount'

const MyComponent = () => {
const {
account,
admin,
clearAdmin,
control,
impersonate,
seenuser,
setAccount,
setSeenUser,
setToken,
signOut,
stopImpersonating,
token
} = useAccount()

// ...
}

Return value

Calling the hook returns an object with the following properties:

account

Holds the account data available in the browser. Below is an example:

{
id: 1,
bio: "Hi, my name is Joost 👋\n\n - 🫡 I am the [benevolent dictator](https://en.wikipedia.org/wiki/Benevolent_dictator_for_life) here at open clothes\n - 🧵 I make clothes and shoes\n - 👕 I design sewing patterns\n - 🧑‍💻 I write code\n - 🐘 I am [@joost@open clothes 社区](https://open clothes 社区/@joost) on Mastodon\n - 🦋 I am [@joost.at](https://bsky.app/profile/joost.at) on Bluesky\n - 📫 My email is joost AT joost DOT at\n - 🙊 I'm an introvert\n - 🦈 My pronouns are he/him or they/them\n - 👻 Joost sounds like Ghost, in case you're wondering\n",
compare: true,
consent: 1,
control: 5,
createdAt: "2014-01-20T17:10:47.000Z",
ehash: "8543e38de4652095c51571fb8dc1734eb7b1b736e574176c42e2f954e5e95a50",
email:"joost@joost.at",
data: {
mastodon: "@joost@open clothes 社区",
instagram: "@open clothes_org",
githubUsername: "joostdecock",
githubEmail: "joost@joost.at",
reddit: "j__st",
website: "https://open clothes.org/"
},
ihash: "7bf3d6a154885eb2c4f56e2bf54b3666d8fb634b72c07c971511816ed0298c79",
imperial: false,
initial: "joost@decock.org",
jwtCalls: 13860,
keyCalls: 16,
language: "en",
lastSeen: "2025-05-29T09:47:56.603Z",
mfaEnabled: true,
newsletter: true,
role: "admin",
status: 1,
updatedAt: "2025-05-29T09:47:56.604Z",
username: "joost",
lusername: "joost",
passwordType: "v3",
bestBefore:1748515676626
}

admin

A user with the admin role can impersonate another user. When that happens, this will hold the account data of the admin user so it can be restored later.

clearAdmin

This clears the admin data held in admin.

control

This provides the user's control score.

impersonate

This method allows users with the admin role to impersonate another user.

It takes an object that should hold the entire user's account data as returned from the backend.

seenUser

This holds the username that was once authenticated in this browser.

It is what allows a welcome back [seenUser] message to be shown even when no user is currently logged in.

setAccount

This method sets the data held in account.

setSeenUser

This method sets the data held in seenUser.

setToken

This method sets the data held in token.

signOut

This message will remove the account data from the browser.

stopImpersonating

This method will stop impersonating theuser and restore the admin account data to account.

token

This holds the JSON Web Token that is used to authenticate to the open clothes backend.