An open API service indexing awesome lists of open source software.

https://github.com/dzenis-h/google-auth__server


https://github.com/dzenis-h/google-auth__server

axios concurrently cookie-session express mongodb mongoose nodemon oauth2 oauth2-server passport passport-google-oauth20

Last synced: 4 months ago
JSON representation

Awesome Lists containing this project

README

          






Google-Auth__server


๐Ÿ“ Secure Authentication with Google-Auth Server: Powering Access Beyond the Cloud


๐Ÿš€ Developed with the software and tools below.


Redux
React
Axios
JSON
HTML5
JavaScript
Markdown

---

## ๐Ÿ“š Table of Contents
- [๐Ÿ“š Table of Contents](#-table-of-contents)
- [๐Ÿ“Overview](#-introdcution)
- [๐Ÿ”ฎ Features](#-features)
- [โš™๏ธ Project Structure](#-project-structure)
- [๐Ÿงฉ Modules](#-modules)
- [๐ŸŽ๐Ÿ’จ Getting Started](#-getting-started)
- [๐Ÿค Contributing](#-contributing)
- [๐Ÿชช License](#-license)
- [๐Ÿ™ Acknowledgments](#-acknowledgments)

---

## ๐Ÿ“Overview

This Google-Auth__server GitHub project is a powerful tool designed to enable users to log into their Google account securely. Using the latest encryption technology, the project provides authentication and authorization services to users to ensure their data and accounts remain safe. Additionally, users can take advantage of the Youtube API integration which enables them to access and manage their Youtube accounts easily and securely. This project provides users with a secure and convenient way to manage their accounts, and is an invaluable tool for anyone who needs to access their Google account regularly.

---

## ๐Ÿ”ฎ Feautres

### Distinctive Features

1. **User-Centered Design:** The user-centered design elements and architecture of the Google-Auth__server GitHub project focuses on creating a secure, intuitive, and seamless user experience. Authentication is handled using a custom-built OAuth2 workflow, allowing for secure user authentication with Google. Client-side components are designed to provide users with a clean, minimalistic interface, and APIs are provided for easy integration with other services.

2. **Unique Features:** The Google-Auth__server GitHub project stands out from other projects due to its unique features. These include:
- A custom-built authentication workflow using OAuth2 to ensure secure user authentication with Google
- Client-side components designed to provide users with a clean, minimalistic interface
- APIs for easy integration with other services
- A configurable authentication server that is lightweight and can be easily deployed
- A set of models for user-related data that are stored in a MongoDB database
- A โ€œChannel Listโ€ component that handles all channel-related logic, from adding new channels to handling authentication requests
- A โ€œHeaderโ€ component that handles all navigation-related logic, from managing user sessions to handling authorization requests
- An โ€œAppโ€ component that serves as the entry point to the application, providing access to the authentication server and the various components
- An โ€œActionsโ€ and โ€œReducersโ€ component that handles all user-related logic, from user authentication to data management.

---

## โš™๏ธ Project Structure

```bash
repo
โ”œโ”€โ”€ client
โ”‚ย ย  โ”œโ”€โ”€ README.md
โ”‚ย ย  โ”œโ”€โ”€ package-lock.json
โ”‚ย ย  โ”œโ”€โ”€ package.json
โ”‚ย ย  โ”œโ”€โ”€ public
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ favicon.ico
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ index.html
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ manifest.json
โ”‚ย ย  โ””โ”€โ”€ src
โ”‚ย ย  โ”œโ”€โ”€ actions
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ index.js
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ types.js
โ”‚ย ย  โ”œโ”€โ”€ components
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ App.js
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ChannelList.js
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ Header.js
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ Landing.js
โ”‚ย ย  โ”œโ”€โ”€ index.js
โ”‚ย ย  โ”œโ”€โ”€ reducers
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ authReducer.js
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ channelsReducer.js
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ index.js
โ”‚ย ย  โ”œโ”€โ”€ serviceWorker.js
โ”‚ย ย  โ””โ”€โ”€ setupProxy.js
โ”œโ”€โ”€ config
โ”‚ย ย  โ”œโ”€โ”€ keys.js
โ”‚ย ย  โ””โ”€โ”€ prod.js
โ”œโ”€โ”€ index.js
โ”œโ”€โ”€ models
โ”‚ย ย  โ””โ”€โ”€ User.js
โ”œโ”€โ”€ package-lock.json
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ routes
โ”‚ย ย  โ”œโ”€โ”€ authRoutes.js
โ”‚ย ย  โ””โ”€โ”€ youtubeRoutes.js
โ””โ”€โ”€ services
โ””โ”€โ”€ passport.js

11 directories, 27 files
```

---

## ๐Ÿ’ป Modules

Actions

| File | Module |
|:---------|:----------------------------|
| types.js | client/src/actions/types.js |
| index.js | client/src/actions/index.js |

Components

| File | Module |
|:---------------|:-------------------------------------|
| ChannelList.js | client/src/components/ChannelList.js |
| Landing.js | client/src/components/Landing.js |
| Header.js | client/src/components/Header.js |
| App.js | client/src/components/App.js |

Config

| File | Module |
|:--------|:---------------|
| keys.js | config/keys.js |
| prod.js | config/prod.js |

Models

| File | Module |
|:--------|:---------------|
| User.js | models/User.js |

Public

| File | Module |
|:------------|:--------------------------|
| favicon.ico | client/public/favicon.ico |
| index.html | client/public/index.html |

Reducers

| File | Module |
|:-------------------|:---------------------------------------|
| index.js | client/src/reducers/index.js |
| channelsReducer.js | client/src/reducers/channelsReducer.js |
| authReducer.js | client/src/reducers/authReducer.js |

Root

| File | Module |
|:---------|:---------|
| index.js | index.js |

Routes

| File | Module |
|:-----------------|-------------------------|
| authRoutes.js | routes/authRoutes.js |
| youtubeRoutes.js | routes/youtubeRoutes.js |

Services

| File | Module |
|:------------|:---------------------|
| passport.js | services/passport.js |

Src

| File | Module |
|:-----------------|:----------------------------|
| index.js | client/src/index.js |
| serviceWorker.js | client/src/serviceWorker.js |


## ๐Ÿš€ Getting Started

### โœ… Prerequisites

Before you begin, ensure that you have the following prerequisites installed:
> `Make sure you have the latest NodeJS runtime installed`

> `You'll need to have NPM installed (it comes with NodeJS)`

### ๐Ÿ’ป Installation

1. Clone the Google-Auth__server repository:
```sh
git clone https://github.com/dzenis-h/Google-Auth__server
```

2. Change to the project directory:
```sh
cd Google-Auth__server
```

3. Install the `server-side` dependencies:
```sh
npm install
```

4. Install the `client-side` dependencies:
```sh
cd client && npm install
```

### ๐Ÿค– Using Google-Auth__server
##### This will start the client and the server at the same time โˆš

```sh
npm run dev
```


## ๐Ÿ›  Future Development
- [X] [๐Ÿ“Œ CREATE-A-README-FILE]
- [ ] [๐Ÿ“Œ ADD-SUMMARY-SECTION]
- [ ] [๐Ÿ“Œ UPDATE-DEPENDENCIES]

---

## ๐Ÿค Contributing
Contributions are always welcome! Please follow these steps:
1. Fork the project repository. This creates a copy of the project on your account that you can modify without affecting the original project.
2. Clone the forked repository to your local machine using a Git client like Git or GitHub Desktop.
3. Create a new branch with a descriptive name (e.g., `new-feature-branch` or `bugfix-issue-123`).
```sh
git checkout -b new-feature-branch
```
4. Make changes to the project's codebase.
5. Commit your changes to your local branch with a clear commit message that explains the changes you've made.
```sh
git commit -m 'Implemented new feature.'
```
6. Push your changes to your forked repository on GitHub using the following command
```sh
git push origin new-feature-branch
```
7. Create a pull request to the original repository.
Open a new pull request to the original project repository. In the pull request, describe the changes you've made and why they're necessary.
The project maintainers will review your changes and provide feedback or merge them into the main branch.

---

## ๐Ÿชช License

This project is licensed under the `MIT` license. See the [LICENSE](https://docs.google.com/document/d/11WK7tVoTFRMcWCuGZQCRWxEsDUEJ_6ArtfV-NjWcBCU/edit?usp=sharing) file for additional info.

---

## ๐Ÿ™ Acknowledgments

This was created by [Dzenis H.](https://www.dzenis.tech)

If you like what you see, please consider giving a โญ๏ธ

---