From a79926f24be60a7d138807eb49e94dea85f08ef8 Mon Sep 17 00:00:00 2001 From: Jason Hu Date: Mon, 10 Sep 2018 03:14:18 -0700 Subject: [PATCH] Add troubleshooting for invalid client id error (#6244) * Add troubleshooting for invalid client id error * Update authentication.markdown * Add a note to remote document * :pencil2: Spelling and grammar tweaks --- source/_docs/authentication.markdown | 18 ++++++++++++++++++ source/_docs/configuration/remote.markdown | 4 ++++ .../error-invalid-client-id.png | Bin 0 -> 15590 bytes 3 files changed, 22 insertions(+) create mode 100644 source/images/docs/authentication/error-invalid-client-id.png diff --git a/source/_docs/authentication.markdown b/source/_docs/authentication.markdown index 6838a31a622..1d55d6b38f3 100644 --- a/source/_docs/authentication.markdown +++ b/source/_docs/authentication.markdown @@ -50,6 +50,24 @@ While you should hopefully be storing your passwords in a password manager, if y When you start Home Assistant next you'll be required to set up authentication again. +### {% linkable_title Error: invalid client id or redirect url%} + +Screenshot of Error: invalid client id or redirect url + +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. + +It because we only allow using IP address as client ID when your IP address is one of internal network address (e.g., 192.168.0.1) or loopback address (e.g., 127.0.0.1). + +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. For example, if you are on Windows, edit `C:\Windows\System32\Drivers\etc\hosts` file with administrator privilege, add following entry. + +```text +12.34.56.78 hassbian.home +``` + +(Please replace `12.34.56.78` with your Home Assistant's public IP address) + +It will allow you to open Home Assistant instance by access `http://hassbian.home:8123/` + ### {% linkable_title Stuck on Loading data %} Some advert blocking software, such as Wipr, also blocks web sockets. If you're stuck on the Loading data screen, try disabling your ad blocker. diff --git a/source/_docs/configuration/remote.markdown b/source/_docs/configuration/remote.markdown index f0d981b116e..00f9e276b35 100644 --- a/source/_docs/configuration/remote.markdown +++ b/source/_docs/configuration/remote.markdown @@ -15,6 +15,10 @@ If you're interested in logging in to Home Assistant while away, you'll have to Remember to follow the [securing checklist](/docs/configuration/securing/) before doing this.

+

+Home Assistant no longer support remote access via IP address since release 0.77, you have to use domain name. +

+ The most common approach is to set up port forwarding (for any port) from your router to port 8123 on the computer that is hosting Home Assistant. General instructions on how to do this can be found by searching ` port forwarding instructions`. You can use any free port on your router and forward that to port 8123. A problem with making a port accessible is that some Internet Service Providers only offer dynamic IPs. This can cause you to lose access to Home Assistant while away. You can solve this by using a free Dynamic DNS service like [DuckDNS](https://www.duckdns.org/). diff --git a/source/images/docs/authentication/error-invalid-client-id.png b/source/images/docs/authentication/error-invalid-client-id.png new file mode 100644 index 0000000000000000000000000000000000000000..9f543b92395385ea08cdcf087bc3ff5f7246c1fb GIT binary patch literal 15590 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 literal 0 HcmV?d00001