https://github.com/udaykiran75/userauthentication-js
https://github.com/udaykiran75/userauthentication-js
expressjs javascript nodejs sql
Last synced: 10 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/udaykiran75/userauthentication-js
- Owner: udaykiran75
- Created: 2024-01-31T15:24:13.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-01-31T15:26:49.000Z (about 2 years ago)
- Last Synced: 2025-04-05T06:29:37.577Z (about 1 year ago)
- Topics: expressjs, javascript, nodejs, sql
- Language: JavaScript
- Homepage:
- Size: 29.3 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Authentication
Given an `app.js` file and a database file `userData.db` consisting of a table `user`.
Write APIs to perform operations on the table `user` containing the following columns,
**User Table**
| Column | Type |
| -------- | ------- |
| username | TEXT |
| name | TEXT |
| password | TEXT |
| gender | TEXT |
|location|TEXT|
### API 1
#### Path: `/register`
#### Method: `POST`
**Request**
```
{
"username": "adam_richard",
"name": "Adam Richard",
"password": "richard_567",
"gender": "male",
"location": "Detroit"
}
```
- **Scenario 1**
- **Description**:
If the username already exists
- **Response**
- **Status code**
```
400
```
- **Status text**
```
User already exists
```
- **Scenario 2**
- **Description**:
If the registrant provides a password with less than 5 characters
- **Response**
- **Status code**
```
400
```
- **Status text**
```
Password is too short
```
- **Scenario 3**
- **Description**:
Successful registration of the registrant
- **Response**
- **Status code**
```
200
```
- **Status text**
```
User created successfully
```
### API 2
#### Path: `/login`
#### Method: `POST`
**Request**
```
{
"username": "adam_richard",
"password": "richard_567"
}
```
- **Scenario 1**
- **Description**:
If an unregistered user tries to login
- **Response**
- **Status code**
```
400
```
- **Status text**
```
Invalid user
```
- **Scenario 2**
- **Description**:
If the user provides incorrect password
- **Response**
- **Status code**
```
400
```
- **Status text**
```
Invalid password
```
- **Scenario 3**
- **Description**:
Successful login of the user
- **Response**
- **Status code**
```
200
```
- **Status text**
```
Login success!
```
### API 3
#### Path: `/change-password`
#### Method: `PUT`
**Request**
```
{
"username": "adam_richard",
"oldPassword": "richard_567",
"newPassword": "richard@123"
}
```
- **Scenario 1**
- **Description**:
If the user provides incorrect current password
- **Response**
- **Status code**
```
400
```
- **Status text**
```
Invalid current password
```
- **Scenario 2**
- **Description**:
If the user provides new password with less than 5 characters
- **Response**
- **Status code**
```
400
```
- **Status text**
```
Password is too short
```
- **Scenario 3**
- **Description**:
Successful password update
- **Response**
- **Status code**
```
200
```
- **Status text**
```
Password updated
```
Use `npm install` to install the packages.
**Export the express instance using the default export syntax.**
**Use Common JS module syntax.**