You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

auth-liveblocks.ts 1011B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import { authorize } from '@liveblocks/node'
  2. import { NextApiHandler, NextApiRequest, NextApiResponse } from 'next'
  3. const API_KEY = process.env.LIVEBLOCKS_SECRET_KEY
  4. const Auth: NextApiHandler = async (
  5. req: NextApiRequest,
  6. res: NextApiResponse
  7. ) => {
  8. if (!API_KEY) {
  9. return res.status(403).end()
  10. }
  11. const room = req.body.room
  12. if (room === 'example-live-cursors-avatars') {
  13. const response = await authorize({
  14. room,
  15. secret: API_KEY,
  16. userInfo: {
  17. name: NAMES[Math.floor(Math.random() * NAMES.length)],
  18. picture: `/assets/avatars/${Math.floor(Math.random() * 10)}.png`,
  19. },
  20. })
  21. return res.status(response.status).end(response.body)
  22. }
  23. const response = await authorize({
  24. room,
  25. secret: API_KEY,
  26. })
  27. return res.status(response.status).end(response.body)
  28. }
  29. export default Auth
  30. const NAMES = [
  31. 'Charlie Layne',
  32. 'Mislav Abha',
  33. 'Tatum Paolo',
  34. 'Anjali Wanda',
  35. 'Jody Hekla',
  36. 'Emil Joyce',
  37. 'Jory Quispe',
  38. 'Quinn Elton',
  39. ]