Add Discord Login
In this guide you will learn how to add a login with Discord to your application.
Prerequisites
- You need a Hanko Cloud account and a project. Learn more on how to set them up here.
- You need a Discord account. You can create account here.
Get your provider redirect URL
When creating an Discord application, you need to provide a redirect URL that determines where the third party
provider redirects after a successful login. This redirect URL consists of the base URL of the Hanko API
and the /thirdparty/callback
endpoint. You can always view your redirect URL in the Hanko Cloud Console:
- Sign in to cloud.hanko.io.
- Select your
Organization
. - Select your
Project
. - In the left sidebar, click
Settings
, then selectIdentity providers
. - Find your redirect URL in the
Redirect URL
input.
You need the redirect URL for creating a new Discord application in the next step and when configuring your credentials with Hanko (you will also configure the remaining configuration options visible in the above screen in this step).
Create a new Discord application
- Navigate to the Discord developer portal.
- On the main dashboard, select
Applications
in the left sidebar. - On the top right, select
New Application
.
- Provide a name for your application, agree to the Discord terms of service and click
Create
- On your application dashboard, select
OAuth2
in the left sidebar. - In the
Redirects
panel, clickAdd Redirect
.
- Enter the
Redirect URL
you obtained in the previous step in the input that appears. - Click
Save changes
.
Get your client ID and secret
- In the
OAuth2
settings of your application, copy theClient ID
. - Click
Reset Secret
, follow the prompts to generate a new secret, then copy the generated secret.
Configure credentials with Hanko
- In the Hanko Cloud Console, navigate to your project
Settings
and selectIdentity providers
. - Configure the following:
-
Error Redirect URL: This is the URL target in your frontend the Hanko API redirects to if an error occurs during third party sign-in. If your frontend uses the
hanko-elements
web components, this URL should be the URL of the page that embeds the web component such that errors can be processed properly by the web component. -
Allowed Redirect URL: This is the URL target in your frontend the Hanko API is allowed to redirect to after third party authentication was successful. If your frontend uses the
hanko-elements
web components, this URL should be the URL of the page that embeds the web component.The allowed redirect URL supports wildcard matching through globbing:
https://*.example.com
matcheshttps://foo.example.com
andhttps://bar.example.com
.https://foo.example.com/*
matches URLs likehttps://foo.example.com/page1
andhttps://foo.example.com/page2
.- Use ** to act as a super-wildcard/match-all.
- In the
Providers
section, selectDiscord
and use theEnable provider
toggle to enable the provider. - Provide the
Client ID
andClient Secret
you obtained in one of the previous section in the remaining inputs. - Click
Save
.
Frontend integration
To enable a login with Discord in your frontend application we recommend using either our pre-built UI as
provided by the @teamhanko/hanko-elements
package or building a custom UI using
the @teamhanko/hanko-frontend-sdk
.
We recommend following one of our quickstart guides to integrate
the <hanko-auth>
component from our @teamhanko/hanko-elements
package in your frontend application .
On successful integration, the component will display a button for signing in with Discord
in the login view
of the component.
Make sure to configure the page the web component is embedded on as your error redirect URL
as well as an
allowed redirect URL
(see the previous step).
On successful authentication with the provider, the backend issues a session cookie and the web component continues the usual component flow on success. Errors that occur during third party provider authentication are also picked up and displayed in the web component accordingly.