# Using Single-Use URLs to Activate an App Without Passwords

DevFeed: [Using Single-Use URLs to Activate an App Without Passwords](<https://devfeed.tech/articles/tip-activate-via-url-and-send-arguments-19559.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/tip-activate-via-url-send-arguments/>)

Author: Shai Almog

Published: 2018-09-03T00:00:00Z

Content type: tutorial

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [passwords](<https://devfeed.tech/topics/passwords.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>), [simulator](<https://devfeed.tech/topics/simulator.md>), [QR Code](<https://devfeed.tech/topics/qrcode.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [boot](<https://devfeed.tech/tags/boot.md>), [browser](<https://devfeed.tech/tags/browser.md>), [ios](<https://devfeed.tech/tags/ios.md>), [password](<https://devfeed.tech/tags/password.md>), [qr-code](<https://devfeed.tech/tags/qr-code.md>), [simulator](<https://devfeed.tech/tags/simulator.md>)

## AI overview

This tutorial explains how to authenticate users with a single-use URL instead of a password. It covers server-side URL generation, a 302 redirect to launch the app, client-side URL parsing, and testing on iOS and Android, including simulator support.

## Source excerpt

The most secure password in the world is the one that doesn't exist. You remove the user from the equation with a completely random key. To be fair this has some drawbacks and a password still exists somewhere (in your phone/email) but generally this works rather well... The trick is simple, if we want to authenticate a user we can email him a single use URL e.g. mycoolapp://act-32548b09-d328-4330-8243-d7d30c322e40. As you can see that's pretty hard to guess or brute force. Once clicked the URL becomes invalid so even if it's exposed somehow it would still be irrelevant. To do this we need two parts: