Live data from Hacker News

Show HN: Open-source OAuth service for 40+ APIs

nango.dev

1–10 of 60 posts

Show HN: Open-source OAuth service for 40+ APIs

#1
Nango (https://github.com/NangoHQ/nango) provides pre-built OAuth flows, secure token storage and automatic refreshes for 40+ APIs and counting.

Why we built Nango: We built Nango to solve the pain of accessing OAuth APIs. Despite OAuth being a standard protocol in theory, it remains a major burden to implement it, even with the help of a library. You still need to add endpoints and logic to your app for the server-side dance, implement token refreshes, build & secure your token storage, deal with redirects on the frontend etc.

But the worst part is that (almost) every API has quirks and non-standard behaviour. This is why we think open source and knowledge sharing is key here: With the templates in Nango we capture these edge cases and make sure that OAuth just works.

How it works: Nango is a small Typescript/Node.js service that handles the OAuth dance, token storage & refreshes for you. It works with any language, API or framework. It is easily self-hostable for free, or as a cloud service if you want to avoid the burden of securing tokens yourself (that’s how we pay the bills). To get started we recommend you take a look at our Quickstart on the GitHub repo: https://github.com/NangoHQ/nango

We currently support 40+ popular APIs. Adding a new one is as simple as updating a YAML file, so anybody can contribute one. In the coming weeks we plan to add a dashboard, a proxy to authorise requests, monitoring and more APIs.

One thing we learned from talking to other engineers about OAuth is that everybody has their own horror stories: What was the hardest OAuth API you ever used? What made it so difficult? We look forward to your stories and your feedback on Nango!

Repo: https://github.com/NangoHQ/nango // Website: https://www.nango.dev

Show HN: Open-source OAuth service for 40+ APIs
nango.dev

Re: Show HN: Open-source OAuth service for 40+ APIs

#3
Pitch looks cool, and I see you have some getting started docs.

Do you have some high-level overview of how it all fits together technically?

IIUC the tokens are stored in a backend service (available on GitHub)? Are they encrypted? How does the frontend SDK communicate with the backend, is there some OAuth flow first to the backend service, to get a user-specific key, which lets you store subsequent tokens?

Re: Show HN: Open-source OAuth service for 40+ APIs

#5
post #4

40+ most popular doesn’t include “Sign in with Apple” or did I miss something?

Thanks for checking it out! Our focus is currently not SSO (though you can use it for that too), we aim more for users who need OAuth tokens to access APIs and build integrations. E.g. fetch commits from GitHub repos (private or public), build a Slack integration, fetch contacts from HubSpots etc.

With these kinds of integrations we haven't gotten requests for "Sign in with Apple" yet (though we are open to that).

Re: Show HN: Open-source OAuth service for 40+ APIs

#6

Pitch looks cool, and I see you have some getting started docs. Do you have some high-level overview of how it all fits together technically? IIUC the tokens are stored in a backend service (available on GitHub)? Are they encrypted? How does the frontend SDK communicate with the backend, is there some OAuth flow first to the backend service, to get a user-specific key, which lets you store subsequent tokens?

That's a good point, we should have some kind of architecture page with a diagram.

At a glance: Nango's frontend SDK only handles redirects for the OAuth flow, the Nango server actually gets called by the OAuth provider (using a callback URL). That's when the token exchange happens. Tokens are stored in a Postgres (by default we create the Postgres, but you can easily connect your own).

Before triggering the OAuth flow for an end-user, you indeed assign it a unique user-specific key, so that you can retrieve this user's token later on!

Re: Show HN: Open-source OAuth service for 40+ APIs

#8
Looks very slick! Wonderful landing page. Congrats.

> But the worst part is that (almost) every API has quirks and non-standard behaviour.

This is my long-standing pet-peeve with identity providers (idP). Everyone goes ahead and does their own thing, especially when it comes fetching user profiles (by having APIs in addition to a standard OAuth userinfo endpoint) and performing "federated logout" (you want to terminate the session on the idP's domain).

Does Nango relieve us of the burden in these areas? Thanks.

Post reply on HN