Skip to content

arikchakma/authingy

Repository files navigation

🔐 Authingy

A type-safe, minimal, opinionated OAuth library with plugin-based providers for JavaScript and TypeScript.

npm

What Does It Do?

Authingy (pronounced "auth-ing-y") simplifies OAuth 2.0 authentication with a clean, type-safe API. It supports multiple providers out of the box.

import { defineAuthingyConfig, google, github } from 'authingy';

const auth = defineAuthingyConfig({
  secret: process.env.AUTH_SECRET,
  providers: [
    google({
      clientId: process.env.GOOGLE_CLIENT_ID,
      clientSecret: process.env.GOOGLE_CLIENT_SECRET,
      redirectUri: 'https://myapp.com/auth/callback/google',
    }),
    github({
      clientId: process.env.GITHUB_CLIENT_ID,
      clientSecret: process.env.GITHUB_CLIENT_SECRET,
      redirectUri: 'https://myapp.com/auth/callback/github',
    }),
  ],
});

// redirect the user to the authorization url
const { url, state, codeVerifier } = await auth.authorize('google');

// one eternity later, the user lands back on the
// callback url, we can now handle the callback
const { user, token } = await auth.callback('google', {
  url: new URL(req.url),
  state,
  codeVerifier,
});

console.log(user);
// {
//   email: 'user@example.com',
//   name: 'John Doe',
//   picture: 'https://...',
//   ...
// }

Note

This library is designed for my personal projects. If you need more flexibility, you can use the underlying oauth4webapi library directly.

Installation

# npm
npm install authingy

# pnpm
pnpm add authingy

# bun
bun add authingy

Acknowledgements

This project was inspired by and builds upon:

  • oauth4webapi - The underlying OAuth 2.0 / OpenID Connect implementation that powers this library

Special thanks to the maintainers and contributors of this project for their excellent work in the OAuth ecosystem.

Contributing

Feel free to submit pull requests, create issues, or spread the word.

License

MIT © Arik Chakma

About

A type-safe, minimal, opinionated OAuth library with plugin-based providers for JavaScript and TypeScript.

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Contributors