About magic links
Magic links are a passwordless method of authentication and make it easier for your users to log in. They work by sending the user a one time code in a link, typically as an email or SMS message. When the user clicks on the link, they are then logged in to the application.
In this doc, you’ll learn how to add magic links functionality to your Java Spring application. You’ll use FusionAuth to easily add magic links.
1. Configure FusionAuth
First, set up FusionAuth and a sample Java Spring application. Please follow this tutorial to get that sample application set up.
All done? Great.
Let’s get magic links set up for your Java Spring application.
2. Enable magic links
Now, let’s enable magic links using FusionAuth. Create another FusionAuth script. To set up magic links, all you need to do is tweak FusionAuth configuration.
Go back to the fusionauth-setup
directory:
cd ../setup-fusionauth
You can use the same client library and API key as you used when setting up FusionAuth and the sample Java Spring application. But here, you are configuring a different aspect, namely magic links.
Put the below code in src/main/java/io/fusionauth/example/AddMagicLink.java
.
package io.fusionauth.example;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import com.inversoft.error.Errors;
import com.inversoft.rest.ClientResponse;
import io.fusionauth.client.FusionAuthClient;
import io.fusionauth.domain.api.ApplicationResponse;
public class AddMagicLink {
public static void main(String[] args) {
final String apiKey = System.getProperty("fusionauth.api.key");
final FusionAuthClient client = new FusionAuthClient(apiKey, "http://localhost:9011");
// enable magic links
UUID clientId = UUID.fromString(Setup.APPLICATION_ID);
Map<String, Object> applicationMap = new HashMap<String, Object>();
Map<String, Object> passwordlessConfigurationMap = new HashMap<String, Object>();
Map<String, Object> enableMagicLinkUpdateMap = new HashMap<String, Object>();
passwordlessConfigurationMap.put("enabled",true);
applicationMap.put("passwordlessConfiguration", passwordlessConfigurationMap);
enableMagicLinkUpdateMap.put("application", applicationMap);
ClientResponse<ApplicationResponse, Errors> applicationResponse = client.patchApplication(clientId, enableMagicLinkUpdateMap);
if (!applicationResponse.wasSuccessful()) {
throw new RuntimeException("couldn't update application");
}
}
}
Run this code:
mvn compile && mvn exec:java -Dexec.mainClass="io.fusionauth.example.AddMagicLinks" \
-Dfusionauth.api.key=<your API key>
You are all done! With this configuration code, you’ve enabled magic links for your Java Spring application.
Manual configuration of magic links
You can also configure magic links manually by logging into the FusionAuth admin user interface and navigating to applications, then the application configuration, then the security tab, then the passwordless login section.

3. Test Out magic links
Now, test to see that you have magic links enabled for your application. Close any other incognito windows you have open and open a new one. (This ensures you’ve logged out of the application.)
Visit the Java Spring application and log in again.
Now, on the login page, you should see a magic link button.

This is the default look and feel, but you can configure branding using themes.
Next steps for magic links
If you want to actually get an email and have log in, make sure you set up your FusionAuth email configuration using a service like Sendgrid or Mailgun.