1.0.3 • Published 3 years ago
oauth2-gcts v1.0.3
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