Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

auth.service.js 1.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { db } from '../utils/db.js'
  2. class Authenticator {
  3. async sendEmail(answered) {
  4. return await db.post('/user/send-email/', answered)
  5. }
  6. async verifySession(hashedToken) {
  7. return await db.get(`/user/verify/${hashedToken}`)
  8. }
  9. async createToken(req) {
  10. return await db.post('/user/token', req, true)
  11. }
  12. async validateSession(hashedSessionToken) {
  13. return await db.post('/user/validate-session', hashedSessionToken, true)
  14. }
  15. async authenticateLoginCredentials(credentials) {
  16. return await db.post('/user/login', credentials)
  17. }
  18. async removeSession(hashedSessionToken) {
  19. return await db.post('/user/remove-session', hashedSessionToken, true)
  20. }
  21. grabStoredCookie(cookieKey) {
  22. const cookies = document.cookie.split('; ').reduce((prev, current) => {
  23. const [name, ...value] = current.split('=')
  24. prev[name] = value.join('=')
  25. return prev
  26. }, {})
  27. return cookies[cookieKey]
  28. }
  29. async verifySessionCookie(sessionCookieKey = 'siimee_session') {
  30. const hashedAccessToken = this.grabStoredCookie(sessionCookieKey)
  31. console.log('verifySessionCookie :>> ', hashedAccessToken)
  32. if (!hashedAccessToken)
  33. return console.warn('WARNING :=> accessToken is not defined')
  34. const validatedToken = await this.validateSession(hashedAccessToken)
  35. if (validatedToken.error)
  36. return console.error('ERROR :=>', validatedToken.error)
  37. return validatedToken
  38. }
  39. }
  40. const authenticator = new Authenticator()
  41. export { authenticator, Authenticator }