1.0.2 • Published 1 year ago

suissard-api v1.0.2

Weekly downloads
-
License
ISC
Repository
github
Last release
1 year ago

suissard-api

Systeme d'api prêt l'emploi

Instancier un api avec un object de config qui contient un hostname et un port. il est possible d'ajouter des parametres lié a discord, qui serviront a authentifier formellement l'utilisateur

const { Api } = require("suissard-api")

const config = { hostname:"myapidomain.dev", port: 8080 }
const discordConfig = { 
    clientId: "123456789", 
    clientSecret:"1a2z3e4r5t6y7y8u9i", 
    redirectUrl: "https://myapidomain.dev:8080/auth" // The url where you can handle the discord code
}

const api = new Api(config, discordConfig)

Ensuite, creer des routes et les fonctions associés. La fonction receverra en argument : la requete, le resultat, l'identifiant de l'utilisateur (false si il n'est pas reconnu) et l'object api (qui contient les utilisateurs et les hash de leur token)

const { Route } = require("suissard-api")

new Route(api, /\/ping/, "get", (req, res, userId, app) => {
    if (userId) res.send(`Hello utilisateur ${userId}`)
    else if (userId === false) res.send(`Hello utilisateur anonyme`)
});

Il est possible de surcharger la methode d'authentification pour utiliser un autre systeme que celui implanté

const api = new Api(config)

api.authentication= (req, res) => {
    if (req.headers.password == "myStrongPassword") return "bigBossId"
    else return "looserId"
}

Concernant l'authentication discord, les infos "clientId", "clientSecret" sont en provenance de https://discord.com/developers/applications. C'est égalemebnt la-bas que vous renseignerez votre url de redirection (celle vers laquelle discord renvera l'utilisateur apres qu'il ai donné les acces, en enrichissant l'url d'un query code) Bref, l'utilisateur clique sur l'url fournit par Api.getDiscordAuthUrl(), s'authentifie et seras redirigé vers "redirectUrl" (que vous devrez avoir préalablement renseigné sur leur site, exemple: "https://myapidomain.dev:8080/auth") A partir de là, l'api renvoie un token, qui permttra au client de s'authentifier pour la suite :)