Excited to share new version of Hivesigner. This important OAuth2 service been serving dozen requests daily, connecting dozen people safely with their favorite apps on Hive.
Few years ago, we re-wrote entire codebase while keeping its core in Vuejs but since most of our (Ecency team) code is in React. We thought it is time to move into our comfort zone, so we re-wrote entire website in React while doing that improved flows, fixed bugs, wrote tests for every screen/flow and overall gave it much better looking system. We hope it is less confusing compared to previous versions. API layer updated to serve current active dapps as well.
Another reason for rewrite, previous framework was reaching its end of life/support with many security patches, would have required substantial rewrite anyway.
What you will notice
It works on every screen. The old app was built for a narrow phone layout and did not do much with a desktop. The new one is responsive from a small phone up to a wide monitor, follows your system's light or dark setting and has the same navigation everywhere.
The consent screen tells you what you are agreeing to. When an app asks for access, Hivesigner now shows the app's display name together with its real Hive account and the site it will send you back to. Those two facts cannot be renamed by the app, so they are the ones worth reading. Below that it lists what posting authority lets that app do on your behalf: publish posts and comments, vote and manage who you follow. It says plainly that this is one grant, made on your device, that the app never receives a key and that it cannot touch your funds. A request that only wants to confirm who you are says exactly that and nothing more.
You can see which account you are using. A row on the consent and signing screens shows the selected account with its avatar and name, with a switch link next to it. If you keep several accounts on one device, you no longer have to guess which one is about to be authorized. Switching accounts brings you back to the same request instead of making the app start over.
Transactions are described in plain words. A signing request is summarized operation by operation: an upvote says who is voting on what and at what weight, a transfer says who pays whom and how much. All 34 Hive operation types are covered. A request that bundles several operations lists each one for review. If an operation acts as an account other than the one you selected, the page says so before you approve. The raw operation is still one tap away for anyone who wants to check it.
It loads faster. The new app is a static site with no application server behind it. Pages arrive quicker and there is less to break.
Keys and safety
Hivesigner has always kept your keys on your device. The rebuild tightens how that works.
Keys of unlocked accounts are held in memory for the session and are never written to browser storage. Closing the tab forgets them.
Accounts protected with a Hivesigner password use a stronger encryption format. Existing accounts are upgraded the first time you unlock them. There is nothing you need to do.
An app can only send you back to a callback address it has registered on its own Hive account. A request with an unregistered address is refused with a clear message rather than quietly completed. Mobile apps that sign in through a local callback are handled correctly.
Error reporting never sees your secrets. Anything key-shaped, token-shaped or code-shaped is blanked before a report leaves your browser. The links Hivesigner opens are stripped of their parameters.
Every error screen has a Report issue button. If a link from some app does not work, one tap sends the details so the problem can be traced to the app that produced it.
For developers
The URL contract is unchanged. Sign links in every form, login requests, OAuth authorization, grant and revoke pages and signed-message tokens all resolve as before. Long sign links that carry a whole transaction in the URL are supported.
Two things are worth checking in your integration:
Register your callback addresses. Hivesigner matches the redirect address against the
redirect_urislist in your app account's profile metadata, exactly as written. Add every address your app uses, including any local address a mobile or desktop build signs in through.Login-only integrations still work without an app account. A site that only needs to confirm a username can send a login request with a secure callback and no client id. The consent screen names your site as the requester and returns a bare login token for your site to verify.
The apps directory at hivesigner.com/apps lists the apps actively using Hivesigner, with the newest ones marked.
Hivesigner UI is open source at github.com/ecency/hivesigner-ui. Issues and pull requests are welcome there.