| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- import { db } from '../utils/db.js'
-
- class Authenticator {
- constructor() {
- this.currentUser = null
- }
- async sendAuthEmail(answered) {
- return await db.post('/user/sendemail/', answered)
- }
- async verifyAuthSession(hashedToken) {
- return await db.get(`/user/verify/${hashedToken}`)
- }
- async getSessionToken(req) {
- return await db.post('/user/get-session', req, true)
- }
- async validateSession(hashedSessionToken) {
- return await db.post('/user/validatesession', hashedSessionToken, true)
- }
- async authenticateLoginCredentials(credentials) {
- return await db.post('/user/login', credentials)
- }
- async removeSession(hashedSessionToken) {
- return await db.post('/user/removesession', 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 authenticator.validateSession(
- hashedAccessToken,
- )
- if (validatedToken.error) {
- console.error('ERROR :=>', validatedToken.error)
- } else {
- return validatedToken
- }
- }
- }
- const authenticator = new Authenticator()
-
- export { authenticator, Authenticator }
|