Say goodbye to the headache of adding social logins.
Authentication has never been this fast and easy.
Our Social SSO solution scales with you without breaking the bank or artificially limiting your user growth. We've streamlined the OAuth process, so you can focus on what really matters: building your product.
And the best part? Integration is a breeze!
All you need is a single line of code:
<a href="https://login.btn.social/{APPID}/facebook">Login with Facebook</a>
Every product speaks to different audiences on different platforms.
You and your users deserve the freedom to choose the social network that works best for them.
That's why we support a variety of social OAuth providers.
From Facebook to GitHub to Instagram... our list is always expanding to keep up with your needs!
{ "network": "facebook", "user": { "id": "1026983XXXXXX51213", "email": "alex.smith@me.com", "first_name": "Alex", "last_name": "Smith", "name": "Alex Smith", "name_format": "{first} {last}", "short_name": "Alex", "picture": { "data": { "height": 50, "is_silhouette": false, "url": "https://platform-lookaside.fbsbx.com/platform/profilepic/?asid=1026983XXXXXX51213&height=50&width=50", "width": 50 } } } }
Unlike other authentication services, we're not interested in tracking monthly active users and we don't believe in significant price jumps as a reward for growing your audience. Pricing should never be a guessing game. We charge for every login request with volume-based discounts. We let you decide how often a user must login. It's your application and your bill... you're in control!
Includes 100 logins Extra 2,500 logins for $0.50
Includes 50,000 logins Extra 10,000 logins for $1.00
Includes 1,000,000 logins Extra 12,500 logins for $1.00
Includes 2,500,000 logins Extra 22,500 logins for $1.00
It will costfor logins in a month.
All plans allow for unlimited applications.
All applications are billed together under one subscription per account.
Adding a Social SSO link with btn.social
is just like adding any other HTML link:
<a href="https://login.btn.social/{APPID}/facebook">Login with Facebook</a>
You just need to include the JavaScript SDK once per page:
<a href="https://login.btn.social/{APPID}/facebook">Login with Facebook</a>
<a href="https://login.btn.social/{APPID}/google">Login with Google</a>
<script async src="https://btn.social/v1/web.js"></script>
This will allow the OAuth flow to work.
However, you must define an onlogin
callback to receive the user's data upon successful logins. With the web SDK, this can be done by passing a data-jsonp
attribute with the name of the callback function to run once the SDK has been initialized:
<a href="https://login.btn.social/{APPID}/facebook">Login with Facebook</a>
<a href="https://login.btn.social/{APPID}/google">Login with Google</a>
<!-- Call the "myCallback" global function when SDK is loaded -->
<script async data-jsonp="myCallback" src="https://btn.social/v1/web.js"></script>
<script defer>
function myCallback() {
console.log('the btn.social SDK is ready!');
btnsocial.onlogin(function (payload) {
let { network, user, token } = payload;
console.log(`user logged in via "${network}" provider`, { user, token });
});
}
</script>
Because these are your links, you may customize the CSS and HTML to your heart's content.
The web SDK only requires that<a>
tags be used with the "https://login.btn.social/"
address.<a class="btn social github" aria-label="login with github" href="https://login.btn.social/{APPID}/github">
<svg>...</svg>
<span>Login with GitHub</span>
</a>
<a class="btn social twitter" aria-label="login with twitter" href="https://login.btn.social/{APPID}/twitter">
<svg>...</svg>
<span>Login with Twitter</span>
</a>
<style>
.btn.social {
cursor: pointer;
position: relative;
display: inline-flex;
justify-content: center;
align-items: center;
text-decoration: none;
border-radius: 0.25rem;
transition: all ease-in 300ms;
border: 1px solid var(--c);
background-color: white;
padding: 0.6rem 1.2rem;
text-align: center;
margin: 0 0.25rem;
color: var(--c);
}
.btn.social:hover {
background-color: var(--c);
color: white;
}
.btn.social.github {
--c: #181717;
}
.btn.social.twitter {
--c: #1DA1F2;
}
.btn.social span {
margin-left: 0.5rem;
}
.btn.social svg {
fill: currentColor;
height: 20px;
width: 20px;
}
@media screen and (max-width: 600px) {
.btn.social span {
display: none;
}
}
</style>
"popup"
ModeRedirects are used by default. You may opt into the "popup"
mode, which will house the OAuth workflow within a dialog window (if possible).
The dialog's dimensions are 500×600 pixels by default, but may be customized with the data-width
and data-height
script attributes for the Web SDK.
<a class="btn social twitter" href="https://login.btn.social/{APPID}/twitter">Login with Twitter</a>
<a class="btn social github" href="https://login.btn.social/{APPID}/github">Login with GitHub</a>
<!-- Enable "popup" mode via the <script> tag -->
<script async data-mode="popup" src="https://btn.social/v1/web.js"></script>
When using the npm package, you may programmatically call the btn.popup()
method and customize the width
and height
options:
// Use "popup" mode via the "btn.social" package
import * as btn from 'btn.social';
/*
HTML:
<button class="btn social" data-network="twitter">Login with Twitter</button>
<button class="btn social" data-network="github">Login with GitHub</button>
*/
const APPID = 'btn-social-appid';
$('.btn.social').on('click', async evt => {
evt.preventDefault();
let width = 500, height = 700;
let provider = evt.target.getAttribute('data-network');
if (provider === 'twitter') {
height = 600;
width = 400;
}
let { network, user, token } = await btn.popup(APPID, provider, { width, height });
console.log(`user logged in via "${network}" provider`, { user, token });
});
Most services that offer Social SSO will save and manage your users’ data. While this may initially seem like a benefit, most applications soon outgrow the service due to latency and/or pricing constraints.
Put simply, when Service manages user data for you, you don’t own your users… they do. You’re forced to rely on Service for accessing and/or updating profile data. You’re also subject to their price hikes and artificial audience limits.
While quick to set up, it’s not uncommon for product teams to grow, only to discover that Service is charging thousands of dollars a month and holding (access to) your users hostage.
btn.social maintains the easy setup, but offers significantly more flexibility, predictable and transparent pricing, and never stands between you and your users.
Your account is subscribed to a monthly plan which includes a fixed number of logins and has its own additive pricing. The minimum monthly payment is $5.00 USD, which includes 50,000 logins. Each additional 10,000 logins is $1.00 extra.
Name | Logins | Price | Logins/$0.01 |
---|---|---|---|
Hobby Plan | 100 | $0.00 | ∞ |
Hobby Addl | 2,500 | $0.50 | 50 |
Starter Plan | 50,000 | $5.00 | 100 |
Starter Addl | 10,000 | $1.00 | 100 |
Business Plan | 1,000,000 | $79.00 | 126 |
Business Addl | 12,5000 | $1.00 | 125 |
Enterprise Plan | 2,500,000 | $169.00 | 148 |
Enterprise Addl | 22,500 | $1.00 | 225 |
Example
In your first month, you have 42,000 logins. This costs $5.00.
In your second month, you have 65,000 logins. This costs $7.00 as the 50,000 logins from the Starter plan are used and you need two additional 10,000 packs to cover the remaining 15,000 requests.
In your third month, you have 1.1M logins. With the Starter plan, this would cost $110 (50k + 105×10k), but it only costs $87 with the Business tier (1M + 8×12.5k). We automatically upgrade your subscription plan to Business so that you pay the cheaper price.
btn.social computes the cost using all pricing tiers and selects the cheapest available automatically. This means that your subscription may periodically upgrade or downgrade pricing tiers — it’s because you’re always getting the best price!
Yes! btn.social offers a Hobby Plan that includes 100 free logins every month... perfect for testing the waters!
Usage beyond the free tier is sold in chunks of 2,500 logins for $0.50.
Even though btn.social offers a Hobby Plan that includes 100 free logins, we want to ensure that your applications are well-equipped for their growth.
We think it's a much more graceful experience to allow your 101st user to log into your application than to shut down all operations while users wait for you to enter a card. We've been there... It's awkward, embarrassing, and leaves users confused and/or frustrated.
But rest assured that btn.social will always give you the best price! If you have a viral month that costs $1.00, we'll automatically downgrade you to the Hobby Plan if you return to ≤ 100 logins in the next month.
We're flexible — and on your team!
Yes! btn.social does not save anything about your users, which means we won’t — and cannot — get in the way of your application’s requests for your users’ data.
Your application decides how, when, and what is stored and accessed; not us!
Yes. We are private by design. We intentionally do not save anything about your users so that you do not have to worry about sharing personal information with a third party. btn.social simply facilitates the handshakes between your users and your OAuth providers.
btn.social will handle as much as you can throw at it! You can scale from zero to billions (or more) without issues, worries, or changes. You won’t even have to contact support to raise a quota!
If you need a provider that isn’t currently available, please contact support so that we can add it ASAP!