1.0.0 • Published 8 months ago

hc-authentication-mysql v1.0.0

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

hc-authentification-mysql

Authentication script in javascript for mysql. Login, register, password recovery, sending email.

For the user register

    import { userRegister } from "hc-authentication-mysql"

    // exemple de utilisation des functions
    userRegister(
        body,
        {
            connection,
            valueTable: {
                tableAuthName:"auth",
                colonneEmailName: "email",
                colonneIdName: "id",
            },
            contentEmail: {
                urlVerify: 'http://localhost:3001/auth/verify-email-register',
                fromTitle: 'Web app',
                subject: 'Welcome to our app',
                title: 'verify your email',
                message: 'Click on the link below to verify your email',
                btnText: 'Verify email'
            },
            configEmail: {
                service: process.env.SMTP_SERVICE,
                host: process.env.SMTP_HOST,
                port: process.env.SMTP_PORT,
                auth: {
                    user: process.env.SMTP_MAIL_APP_USER,
                    pass: process.env.SMTP_MAIL_APP_PASSWORD
                }
            },
            valueToken: {
                expiresIn: "1h",
                secretKey: process.env.SECRET_KEY
            }
        }
    )
    .then(data => {"your code here"})
    .catch(err => {"your code here if error"})
  • connection:

    • is a return of function mysql, ex:
      • const connection = mysql.createConnection(config);
      • connection.connect(()=>{})
  • valueTable:

    • need to access the database table.
  • contentEmail:

    • content of the email for send a verify email with a link which contains secret key to verify.
  • configEmail:

    • we need to look for this information at our server or email service for authorization of email sendings.
  • valueToken:

    • for a good configuration of the token we need a fairly complex secret key for good security, we also need the time of life of this one, in hours, ex "1h" or "24h".

For login

    import { userLogin } from "hc-authentication-mysql"

    // exemple de utilisation des functions
    userLogin(
        body,
        conn={
            connection: null, 
            valueTable: {
                tableAuthName: "", 
                colonneEmailName: "", 
                colonnePasswordName: "", 
                colonneIdName: ""
            },
            valueToken: {
                expiresIn: "24h",
                secretKey: "create_a_random_token"
            }
        }
    )
    .then(data => {"your code here"})
    .catch(err => {"your code here if error"})
  • checking the user in the db.
  • creation and sending of the authentication token for future access.
  • we can send a token for the creation of a cookie.

For forgot password

    import { forgotPassword } from "hc-authentication-mysql"

    // exemple de utilisation des functions
    forgotPassword(
        body,
        conn={
            connection,
            valueTable: {},
            contentEmail: {},
            configEmail: {},
            valueToken: {}
        }
    )
    .then(data => {"your code here"})
    .catch(err => {"your code here if error"})
  • Send link Email with secret key for forgot password.

For reset password

    import { resetPassword } from "hc-authentication-mysql"

    // exemple de utilisation des functions
    resetPassword(
        body,
        conn={
            connection,
            valueTable: {},
            contentEmail: {},
            configEmail: {},
            valueToken: {}
        }
    )
    .then(data => {"your code here"})
    .catch(err => {"your code here if error"})
  • Update password in a DB mysql.