npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

social-media-auth

v1.0.1

Published

This codebase provides a comprehensive solution for handling authentication with various social media platforms, including Facebook, GitHub, LinkedIn, and Google. It is structured around service classes for each platform, each encapsulating the logic for

Downloads

5

Readme

This codebase provides a comprehensive solution for handling authentication with various social media platforms, including Facebook, GitHub, LinkedIn, and Google. It is structured around service classes for each platform, each encapsulating the logic for generating authentication URLs, exchanging authorization codes for access tokens, and retrieving user details. The code leverages a common HttpService for making HTTP requests and relies on a set of constants and interfaces for configuration and data structure.

Setup

  1. Installation: Install the package using npm or yarn:
    npm install social-media-auth
    or
    yarn add social-media-auth

Key Features:

  • Modular Design: Each service class is responsible for a specific platform, promoting separation of concerns and making the codebase easier to maintain and extend.
  • Validation: Utilizes a validateNonEmptyParams function to ensure that required parameters are not empty before proceeding with API calls.
  • URL Construction: Dynamically constructs authentication URLs and access token request parameters based on provided configuration and platform-specific constants.
  • HTTP Requests: Uses the HttpService to make HTTP requests, abstracting the details of the HTTP client used.
  • Error Handling: Returns ApiResponse objects that can represent either successful responses or errors, providing a consistent interface for handling responses.

Services Overview:

  • FacebookAuthService: Handles Facebook authentication, including generating the login URL, exchanging authorization codes for access tokens, and retrieving user details.
  • GithubAuthService: Manages GitHub authentication, with functionalities for generating the GitHub authentication URL, obtaining access tokens, and fetching user data.
  • LinkedinAuthService: Responsible for LinkedIn authentication, offering methods to generate the LinkedIn authorization URL, exchange authorization codes for access tokens, and retrieve user information.
  • GoogleAuthService: Provides functionality for Google authentication, including generating the Google authentication URL, exchanging authorization codes for access tokens, and fetching user data.

Usage:

To use these services, instantiate the desired service class and call its methods with the appropriate parameters. For example, to generate a Facebook login URL:

import {facebook} from 'social-media-auth'
const loginUrl = facebook.generateFacebookAuthUrl(clientId, redirectUri);

Dependencies:

  • HttpService: A custom HTTP client for making requests.
  • ApiResponse: An interface for standardizing API response objects.
  • Constants: An enumeration of constants used across the services, such as API endpoints and scopes.
  • TokenResponse and UserData: Interfaces for structuring the responses from the authentication and user data retrieval methods.
  • validateNonEmptyParams: A utility function for validating that required parameters are not empty.
  • handleAuthUrlResponse: A utility function for formatting authentication URLs.

This codebase is designed to be integrated into applications requiring social media authentication, providing a robust and modular solution for handling OAuth flows with minimal boilerplate.