| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- import { db } from '../utils/db.js'
-
- class Authenticator {
- constructor() {
- this.currentUser = null
- }
- async sendEmail(answered) {
- return await db.post('/user/send-email/', answered)
- }
- async verifySession(hashedToken) {
- return await db.get(`/user/verify/${hashedToken}`)
- }
- async createToken(req) {
- return await db.post('/user/token', req, true)
- }
- async validateSession(hashedSessionToken) {
- return await db.post('/user/validate-session', hashedSessionToken, true)
- }
- async authenticateLoginCredentials(credentials) {
- return await db.post('/user/login', credentials)
- }
- async removeSession(hashedSessionToken) {
- return await db.post('/user/remove-session', hashedSessionToken, true)
- }
- grabStoredCookie(cookieKey) {
- const cookies = document.cookie.split('; ').reduce((prev, current) => {
- const [name, ...value] = current.split('=')
- prev[name] = value.join('=')
- return prev
- }, {})
- const cookieVal =
- cookieKey in cookies ? cookies[`${cookieKey}`] : undefined
- return cookieVal
- }
- async verifySessionCookie(sessionCookie) {
- const hashedAccessToken = this.grabStoredCookie(sessionCookie)
- if (!hashedAccessToken)
- return console.warn('WARNING :=> accessToken is not defined')
- const validatedToken = await this.validateSession(hashedAccessToken)
- if (validatedToken.error) {
- console.error('ERROR :=>', validatedToken.error)
- } else {
- return validatedToken
- }
- }
- }
- const authenticator = new Authenticator()
-
- export { authenticator, Authenticator }
|