Privacy-friendly alternative to Login with Facebook

SimpleLogin is built for privacy-conscious site owners and protects your users identity. Open-source, Developer-first, SimpleLogin can be integrated in minutes.

Get Started Read our Docs
SimpleLogin dashboard

Identity provider that respects your users privacy.

It's time to ditch Login with Facebook.

Easy integration

Painless setup. Default config to facilite our life (e.g. localhost is whitelisted by default 🥳). Start now and launch in the next hour.

100% open-source

Built upon open-source technology, all SimpleLogin components are also open-source.

No tracking

Using SimpleLogin shows that you care about your users privacy.

Follow the standard

SimpleLogin implements OAuth2/OpenID Connect, the industry standard for login solution and is fully compatible with any OAuth2/OpenID Connect library.

<button onclick="simpleLogin()">
    Login with SimpleLogin

<!-- Include SimpleLogin JS SDK -->
<script src=""></script>

SL.init("quickstart"); // Your SimpleLogin AppID

function simpleLogin() {
        // This is where you log user in :)
        console.log("SimpleLogin user", user);

import requests_oauthlib, os

# Your SimpleLogin AppID, AppSecret
CLIENT_ID = os.environ.get("CLIENT_ID")

def login():
    sl = requests_oauthlib.OAuth2Session(
    redirect_url, _ = sl.authorization_url(

    return flask.redirect(redirect_url)

def callback():
    sl = requests_oauthlib.OAuth2Session(CLIENT_ID)

    user_info = sl.get("").json()
    print(user_info["email"], user_info["name"], user_info["avatar_url"])
    return "Welcome " + user_info["name"]

# Based on social-auth-app-django library
pip install git+ssh://




<!-- In your login template -->
<a href="{% url 'social:begin' 'simplelogin' %}">Login with SimpleLogin</a>

                            // config SimpleLogin OIDC
passport.use('SimpleLogin', new OidcStrategy({
    issuer: '',
    authorizationURL: '',
    tokenURL: '',
    userInfoURL: '',
    clientID: process.env.CLIENT_ID, // SimpleLogin AppId
    clientSecret: process.env.CLIENT_SECRET, // SimpleLogin AppSecret
    callbackURL: process.env.URL + '/authorization-code/callback',
    scope: 'openid profile'
}, (issuer, sub, profile, accessToken, refreshToken, done) => {
    return done(null, profile);

// show user info
app.use('/profile', (req, res) => {
    console.log("user:", req);
    res.render('profile', {
        title: 'User Info',
        user: req.user._json
Coming soon...
Coming soon...

Created by developer for developer

SimpleLogin is compatible with all Oauth2/OpenID Connect libraries.

Check Icon
Python (Flask)
Check Icon
Python (Django)
Check Icon
NodeJS (Passport.js)
Check Icon
Client-side javascript
Check Icon
ReactJS, VueJS Coming soon

As a software engineer, I like SimpleLogin concept and its streamlined development experience.
There are some solutions with a similar purpose, but none of them is transparent for users. Or simple enough for developers to integrate.
Finally, a service that makes people conscious about PRIVACY. And helps developers bring trust to their brand identity in a SIMPLE way.


Software Engineer, Docker

Frequently asked questions

¿Sabías que Facebook y Google utilizan estos botones para rastrear tu historial de navegación para proporcionarte más anuncios personalizados?

Como SimpleLogin no se basa en publicidad y ofrece a los usuarios control total sobre sus datos, no tenemos ningún incentivo para utilizar tus datos de usuario.

Todo el código de SimpleLogin es completamente de código abierto en GitHub

Cualquiera puede auditar libremente el código o configurar su propio servidor de SimpleLogin.

Los ingresos de SimpleLogin se basan en un modelo transparente y sostenible que nos permite tener un producto sin rastreadores y que favorece la privacidad.

¡Si, absolutamente! Comenzamos con la plataforma web simplemente porque también se pueden utilizar para aplicaciones móviles a través de Android WebView o IOS UIWebView.

Planeamos proporcionar un SDK y algunos ejemplos para Android, iOS y Windows muy pronto. ¡Mantente al tanto!