Skip to content

MomenSherif/react-oauth

Repository files navigation

React OAuth

Modern OAuth2 authentication libraries for React πŸš€

npm version npm version License: MIT

Demo β€’ Documentation β€’ GitHub


Overview

React OAuth is a collection of production-ready OAuth2 libraries for React applications. Each package is designed to be simple, type-safe, and easy to integrate into your projects.

Packages

Package Description NPM
@react-oauth/google Google OAuth2 using the new Google Identity Services SDK npm
@react-oauth/github Modern React hook for GitHub OAuth authentication npm

Quick Start

Google OAuth

npm install @react-oauth/google
# or
yarn add @react-oauth/google

Basic Usage:

import { GoogleOAuthProvider, GoogleLogin } from '@react-oauth/google';

function App() {
  return (
    <GoogleOAuthProvider clientId="<your_client_id>">
      <GoogleLogin
        onSuccess={credentialResponse => {
          console.log(credentialResponse);
        }}
        onError={() => {
          console.log('Login Failed');
        }}
      />
    </GoogleOAuthProvider>
  );
}

Features:

  • βœ… Sign In With Google button
  • βœ… One-tap sign-up
  • βœ… Automatic sign-in
  • βœ… Custom login buttons
  • βœ… Implicit & Authorization Code flows
  • βœ… Full TypeScript support

GitHub OAuth

npm install @react-oauth/github
# or
yarn add @react-oauth/github

Basic Usage:

import { useGitHubLogin } from '@react-oauth/github';

function LoginButton() {
  const { initiateGitHubLogin, isLoading } = useGitHubLogin({
    clientId: 'your-github-client-id',
    redirectUri: 'http://localhost:3000/callback',
    onSuccess: response => {
      console.log('Authorization code:', response.code);
      // Exchange code for access token on your backend
    },
    onError: error => {
      console.error('Authentication failed:', error);
    },
  });

  return (
    <button onClick={initiateGitHubLogin} disabled={isLoading}>
      {isLoading ? 'Loading...' : 'Sign in with GitHub'}
    </button>
  );
}

Features:

  • βœ… Production-ready React hook
  • βœ… Fully typed with TypeScript
  • βœ… Zero runtime dependencies
  • βœ… Flexible API with complete UI control
  • βœ… Comprehensive error handling
  • βœ… Built-in CSRF protection

Documentation

Google OAuth

GitHub OAuth


Demo

Check out the live demo to see the Google OAuth package in action:

πŸ”— https://react-oauth.vercel.app/ (Google OAuth only)


Contributing

Contributions are welcome! Please read our Contributing Guide for details on our code of conduct and the process for submitting pull requests.


License

This project is licensed under the MIT License - see the LICENSE file for details.


Made with ❀️ for the React community

GitHub β€’ Issues β€’ @react-oauth/google β€’ @react-oauth/github