The authentication system secures access to Home Assistant.
If you log in from within your local network, you are greeted with a login screen showing all the people in Home Assistant.
When logging in from outside your local network, the users are not shown. This is to protect your privacy. In this case, you need to enter your user name.
You might also see this screen if you are using a Chromium-based browser (Chrome, Edge) and IPv6. Home Assistant might not be able to detect if your are logging in from a local network. This is a known issue with Chromium.
When you start Home Assistant for the first time the owner user account is created. This account has some special privileges and can:
- Create and manage other user accounts.
- Configure integrations and other settings (coming soon).
Once you’re logged in, you can see the details of your account at the Profile page by clicking on the circular at the very bottom of the sidebar.
- Change your password.
- Enable or disable multi-factor authentication.
- Delete Refresh Tokens. These are created when you log in from a device. Delete them if you want to force the device to log out.
- Create Long Lived Access Tokens so scripts can securely interact with Home Assistant.
- Log out of Home Assistant.
Make sure to choose a secure password! At some time in the future, you will probably want to access Home Assistant from outside your local network. This means you are also exposed to random black-hats trying to do the same. Treat the password like the key to your house.
As an extra level of security, you can turn on multi-factor authentication.
Home Assistant provides several ways to authenticate. See the Auth providers section.
If you’re seeing authentication failures from
127.0.0.1 and you’re using the
nmap device tracker, you should exclude the Home Assistant IP from being scanned.
Under the new authentication system you’ll see the following warning logged when the legacy API password is supplied, but not configured in Home Assistant:
WARNING (MainThread) [homeassistant.components.http.auth] You need to use a bearer token to access /blah/blah from 192.0.2.4
If you see this, you need to add an
api_password to your
If you see the following, then this is a message for integration developers, to tell them they need to update how they authenticate to Home Assistant. As an end user you don’t need to do anything:
INFO (MainThread) [homeassistant.components.http.auth] You need to use a bearer token to access /blah/blah from 192.0.2.4
Before using the procedure below, make sure you explore options provided here.
While you should hopefully be storing your passwords in a password manager, if you lose the password associated with the owner account the only way to resolve this is to delete all the authentication data. You do this by shutting down Home Assistant and deleting the following files from the
.storage/ folder in your configuration folder:
When you start Home Assistant next, you’ll be required to set up authentication again.
You have to use a domain name, not IP address, to remote access Home Assistant otherwise you will get
Error: invalid client id or redirect url error on the login form. However, you can use the IP address to access Home Assistant in your home network.
This is because we only allow an IP address as a client ID when your IP address is an internal network address (e.g.,
192.168.0.1) or loopback address (e.g.,
If you don’t have a valid domain name for your Home Assistant instance, you can modify the
hosts file on your computer to fake one.
On Linux edit the
/etc/hosts file, and add following entry:
188.8.131.52 with your Home Assistant’s public IP address.
This will allow you to open Home Assistant at
Some ad blocking software, such as Wipr, also blocks WebSockets. If you’re stuck on the Loading data screen, try disabling your ad blocker.
If you were using the authentication system before 0.77, you’d likely have
auth_providers: defined. You’ll need to remove these and let Home Assistant handle it automatically.