1.0.3 • Published 3 years ago

oauth2-gcts v1.0.3

Weekly downloads
-
License
MIT
Repository
gitlab
Last release
3 years ago

OAuth2 Client

OAuth2 Client for JavaScript projects written in TypeScript

Installation

npm install oauth2-gcts

Usage

Config

import { OAuth2Client, OAuth2ClientConfig } from 'oauth2-gcts'

const host = "http://localhost:3030/api/v1/oauth2"

const config : OAuth2ClientConfig = {
    apiKey : "some_key", 
    apiSecret : "some_secret",
    tokenURL: `${host}/token`,
    registerURL : `${host}/register`,
    verifyAccountURL : `${host}/verify_account`,
    resetPasswordURL : `${host}/reset_password`,
    validateTokenURL : `${host}/validate`
}

const client = new OAuth2Client(config)

Register a new user

client.register(new CoreUser(email, password, "Helmer", "Barcos"))
    .then((res) => {
        if (res.wasSuccessful()) {
            console.log("user_id = " + res.getID())
        } else {
            console.error(res.getErrorMessage())
        }
    })
    .catch(err => console.error(err.error || err.message))

Verify user account

client.verifyAccount(token)
    .then((res) => {
        if (res.wasSuccessful()) {
            console.log("Account verified successfully")
        } else {
            console.error(res.getErrorMessage())
        }
    })
    .catch(err => console.error(err.error || err.message))

Access with client credentials

client.login({ email, password })
    .then((res) => {
        if (res.wasSuccessful()) {
            console.log(res.getTokens())
        } else {
            throw new Error("Unable to login " + res.getErrorMessage())
        }
    })
    .catch(err => console.error(err.error || err.message))

Refresh user session

client.login({ email, password })
    .then((res) => {
        if (!res.wasSuccessful()) {
            throw new Error("Unable to login " + res.getErrorMessage())
        }
    })
    .then(() => client.refreshAccess()) // .then(() => client.refreshAccess("some_token"))
    .then((res) => {
        if (res.wasSuccessful()) {
            console.log(res.getTokens())
        } else {
            console.error(res.getErrorMessage())
        }
    })
    .catch(err => console.error(err.error || err.message))

Reset user pwd

client.startResetPassword(email)
    .then((res) => {
        if (res.wasSuccessful()) {
            console.log("Reset password Email sent successfully")
        } else {
            console.error(res.getErrorMessage())
        }
    })
    .catch(err => console.error(err.error || err.message))

// verification_token sent via email
client.doResetPassword(email, { old_password : password, new_password : newPwd, verification_token : pwdToken })
    .then((res) => {
        if (res.wasSuccessful()) {
            console.log("pwd changed successfully")
        } else {
            console.error(res.getErrorMessage())
        }
        password = newPwd
    })
    .catch(err => console.error(err.error || err.message))

Validate token

client.login({ email, password })
    .then((res) => {
        if (!res.wasSuccessful()) {
            throw new Error("Unable to login " + res.getErrorMessage())
        }
    })
    .then(() => myTimeout())
    .then(() => client.validateToken()) // .then(() => client.validateToken("some_access_token"))
    .then((res) => {
        if (res.wasSuccessful()) {
            console.log("token validated successfully")
            console.log("isTokenValid = ", res.isTokenValid())
        } else {
            console.error(res.getErrorMessage())
        }
    })
    .catch(err => console.error(err.error || err.message))

Publish

npm run build && npm publish

License

MIT

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago