1.6.3 • Published 4 months ago

propro-utils v1.6.3

Weekly downloads
-
License
ISC
Repository
github
Last release
4 months ago

propro-utils

propro-utils is a comprehensive Node.js middleware designed for handling authentication, authorization, and various utility functions for web applications. It provides a robust solution for both server-side and client-side authentication, profile management, and application settings.

Features

  • Flexible Authentication: Supports both server-side and client-side authentication.
  • Profile Management: Includes routes for updating user profiles, passwords, emails, two-factor authentication, and avatars.
  • App Settings: Provides a route for managing application-specific settings.
  • Token Refresh: Handles token refreshing for maintaining user sessions.
  • Logout Functionality: Implements secure user logout.
  • Configurable: Offers a wide range of options for customizing the authentication process.
  • Error Handling: Provides robust error management during the authentication process.

Installation

Install the middleware using yarn:

 yarn add propro-utils

Usage

After installing the middleware, you can import and use it in your Express application:

const express = require('express');
const AuthMiddleware = require('propro-utils');
const userSchema = require('./models/user');

const app = express();

const authMiddleware = new AuthMiddleware(
  {
    authUrl: process.env.AUTH_URL,
    clientId: process.env.CLIENT_ID,
    clientSecret: process.env.CLIENT_SECRET,
    clientUrl: process.env.CLIENT_URL,
    redirectUri: process.env.REDIRECT_URI,
    appName: process.env.APP_NAME,
    appUrl: process.env.APP_URL,
  },
  userSchema
);

app.use(authMiddleware.middleware());

// Your other routes and middleware

Configuration Options

The AuthMiddleware constructor accepts an options object with the following properties:

  • secret: The secret key used for authentication (default: 'RESTFULAPIs')
  • authUrl: The authentication URL
  • clientId: The client ID
  • clientSecret: The client secret
  • clientUrl: The client URL
  • redirectUri: The redirect URI
  • appName: The application name
  • appUrl: The URL of the client application

API Routes

The middleware sets up the following routes:

  • GET /api/auth: Initiates the authentication process
  • GET /api/callback: Handles the callback from the authentication server
  • POST /api/refreshToken: Refreshes the authentication token
  • POST /api/logout: Logs out the user
  • PATCH /api/profile: Updates the user profile
  • PATCH /api/profile/password: Updates the user's password
  • PATCH /api/profile/email: Updates the user's email
  • PATCH /api/profile/2fa: Manages two-factor authentication
  • PATCH /api/profile/avatar: Updates the user's avatar
  • PATCH /api/app/settings: Manages application settings

Error Handling

The middleware includes comprehensive error handling for various scenarios, including missing tokens, failed requests, and server errors.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

ISC © 2023 ProPro devs@hubhub.app

1.6.3

4 months ago

1.6.2

4 months ago

1.6.1

4 months ago

1.6.0

4 months ago

1.5.90

7 months ago

1.5.92

5 months ago

1.5.91

6 months ago

1.5.94

5 months ago

1.5.93

5 months ago

1.5.96

4 months ago

1.5.95

4 months ago

1.5.97

4 months ago

1.5.99

4 months ago

1.5.76

8 months ago

1.5.78

7 months ago

1.5.77

7 months ago

1.5.79

7 months ago

1.5.81

7 months ago

1.5.80

7 months ago

1.5.83

7 months ago

1.5.82

7 months ago

1.5.85

7 months ago

1.5.84

7 months ago

1.5.86

7 months ago

1.5.89

7 months ago

1.5.70

8 months ago

1.5.72

8 months ago

1.5.74

8 months ago

1.5.73

8 months ago

1.5.75

8 months ago

1.5.63

8 months ago

1.5.65

8 months ago

1.5.64

8 months ago

1.5.67

8 months ago

1.5.66

8 months ago

1.5.69

8 months ago

1.5.68

8 months ago

1.5.58

8 months ago

1.5.59

8 months ago

1.5.61

8 months ago

1.5.62

8 months ago

1.5.56

8 months ago

1.5.57

8 months ago

1.5.50

9 months ago

1.5.52

9 months ago

1.5.51

9 months ago

1.5.54

9 months ago

1.5.53

9 months ago

1.5.44

10 months ago

1.5.47

9 months ago

1.5.46

9 months ago

1.5.49

9 months ago

1.5.5

12 months ago

1.5.4

12 months ago

1.5.3

12 months ago

1.5.2

12 months ago

1.5.1

12 months ago

1.4.80

1 year ago

1.4.82

12 months ago

1.4.81

1 year ago

1.4.84

12 months ago

1.4.83

12 months ago

1.4.86

12 months ago

1.4.85

12 months ago

1.4.88

12 months ago

1.4.87

12 months ago

1.4.89

12 months ago

1.4.91

12 months ago

1.4.90

12 months ago

1.4.93

12 months ago

1.4.92

12 months ago

1.4.95

12 months ago

1.4.94

12 months ago

1.4.97

12 months ago

1.4.96

12 months ago

1.4.99

12 months ago

1.4.98

12 months ago

1.4.60

1 year ago

1.5.30

11 months ago

1.4.62

1 year ago

1.4.61

1 year ago

1.5.32

11 months ago

1.4.64

1 year ago

1.5.31

11 months ago

1.4.63

1 year ago

1.5.34

11 months ago

1.4.66

1 year ago

1.5.33

11 months ago

1.4.65

1 year ago

1.5.36

11 months ago

1.4.68

1 year ago

1.5.35

11 months ago

1.4.67

1 year ago

1.5.38

11 months ago

1.5.37

11 months ago

1.4.69

1 year ago

1.5.39

11 months ago

1.4.71

1 year ago

1.4.70

1 year ago

1.5.41

11 months ago

1.4.73

1 year ago

1.5.40

11 months ago

1.4.72

1 year ago

1.5.9

12 months ago

1.4.75

1 year ago

1.5.42

11 months ago

1.5.8

12 months ago

1.4.74

1 year ago

1.5.7

12 months ago

1.4.77

1 year ago

1.5.6

12 months ago

1.4.76

1 year ago

1.4.79

1 year ago

1.4.78

1 year ago

1.5.10

12 months ago

1.5.12

12 months ago

1.5.11

12 months ago

1.5.14

12 months ago

1.5.13

12 months ago

1.5.16

12 months ago

1.5.15

12 months ago

1.5.18

12 months ago

1.5.17

12 months ago

1.5.19

11 months ago

1.4.51

1 year ago

1.5.21

11 months ago

1.4.53

1 year ago

1.5.20

11 months ago

1.4.52

1 year ago

1.5.23

11 months ago

1.4.55

1 year ago

1.5.22

11 months ago

1.4.54

1 year ago

1.5.25

11 months ago

1.4.57

1 year ago

1.5.24

11 months ago

1.4.56

1 year ago

1.5.27

11 months ago

1.4.59

1 year ago

1.5.26

11 months ago

1.4.58

1 year ago

1.5.29

11 months ago

1.5.28

11 months ago

1.4.39

1 year ago

1.4.38

1 year ago

1.4.40

1 year ago

1.4.42

1 year ago

1.4.41

1 year ago

1.4.44

1 year ago

1.4.43

1 year ago

1.4.46

1 year ago

1.4.45

1 year ago

1.4.48

1 year ago

1.4.47

1 year ago

1.4.49

1 year ago

1.4.50

1 year ago

1.4.31

1 year ago

1.4.33

1 year ago

1.4.32

1 year ago

1.4.35

1 year ago

1.4.34

1 year ago

1.4.37

1 year ago

1.4.36

1 year ago

1.4.29

1 year ago

1.4.30

1 year ago

1.4.28

1 year ago

1.4.26

1 year ago

1.4.27

1 year ago

1.4.24

1 year ago

1.4.23

1 year ago

1.4.25

1 year ago

1.4.6

1 year ago

1.4.5

1 year ago

1.4.4

1 year ago

1.4.3

1 year ago

1.4.2

1 year ago

1.4.1

1 year ago

1.4.20

1 year ago

1.4.22

1 year ago

1.4.21

1 year ago

1.4.9

1 year ago

1.4.11

1 year ago

1.4.8

1 year ago

1.4.10

1 year ago

1.4.7

1 year ago

1.4.13

1 year ago

1.4.12

1 year ago

1.4.15

1 year ago

1.4.14

1 year ago

1.4.17

1 year ago

1.4.16

1 year ago

1.4.19

1 year ago

1.4.18

1 year ago

1.4.0

1 year ago

1.3.42

1 year ago

1.3.43

1 year ago

1.3.46

1 year ago

1.3.47

1 year ago

1.3.44

1 year ago

1.3.45

1 year ago

1.3.48

1 year ago

1.3.49

1 year ago

1.3.39

1 year ago

1.3.40

1 year ago

1.3.41

1 year ago

1.3.31

1 year ago

1.3.32

1 year ago

1.3.30

1 year ago

1.3.35

1 year ago

1.3.36

1 year ago

1.3.33

1 year ago

1.3.34

1 year ago

1.3.37

1 year ago

1.3.38

1 year ago

1.3.29

1 year ago

1.3.25

1 year ago

1.3.28

1 year ago

1.3.26

1 year ago

1.3.27

1 year ago

1.3.24

1 year ago

1.3.21

1 year ago

1.3.22

1 year ago

1.3.23

1 year ago

1.3.19

1 year ago

1.3.20

1 year ago

1.3.17

1 year ago

1.3.18

1 year ago

1.3.14

1 year ago

1.3.15

1 year ago

1.3.16

1 year ago

1.3.10

1 year ago

1.3.9

1 year ago

1.3.13

1 year ago

1.3.11

1 year ago

1.3.12

1 year ago

1.3.8

1 year ago