Sync Clerk Data to Your Database Using Webhooks

แชร์
ฝัง
  • เผยแพร่เมื่อ 8 ก.ย. 2024

ความคิดเห็น • 43

  • @uixmat
    @uixmat 3 หลายเดือนก่อน +5

    It's been a while since I dived into Clerk, look's like it's come along way. Thanks for the awesome vid Hamed 🙌🏼

    • @hamedbahram
      @hamedbahram  3 หลายเดือนก่อน

      Pleasure Matt 🙌🏼

  • @patolorde
    @patolorde 3 หลายเดือนก่อน +4

    Great video as always hamed

    • @hamedbahram
      @hamedbahram  3 หลายเดือนก่อน

      Thanks! I appreciate that.

  • @adlerspencer
    @adlerspencer 3 หลายเดือนก่อน +2

    Awesome! Tks, Mr. Bahram!

    • @hamedbahram
      @hamedbahram  3 หลายเดือนก่อน

      My pleasure!

  • @shezzz761
    @shezzz761 3 หลายเดือนก่อน +10

    For example, when a user registers but our database is down, how do we resend the failed webhook?

    • @hamedbahram
      @hamedbahram  3 หลายเดือนก่อน +3

      Clerk would retry the webhook automatically, you can see the retry schedule here → docs.svix.com/retries

  • @Diary_Chronicles
    @Diary_Chronicles 2 หลายเดือนก่อน +1

    Thanks a lot

    • @hamedbahram
      @hamedbahram  2 หลายเดือนก่อน

      Happy to help!

  • @niconel7659
    @niconel7659 2 หลายเดือนก่อน

    This was awesome. Waiting eagerly for your course.

    • @hamedbahram
      @hamedbahram  2 หลายเดือนก่อน

      Awesome, thank you!

  • @SaraAhmed-we4xs
    @SaraAhmed-we4xs 8 วันที่ผ่านมา +1

    how is svix being used here? Can I create a webhook endpoint using svix?

    • @hamedbahram
      @hamedbahram  8 วันที่ผ่านมา

      Svix is a webhook sending platform, you can learn more about it here → www.svix.com

  • @WebDevCodeCrush
    @WebDevCodeCrush 3 หลายเดือนก่อน +2

    Great video. I’ve been struggling with this. Wasn’t sure if I should use the clerk Id as my unique user identifier in the database or something like the token Id. Wanted to make sure it was an id that would not potentially change on the clerk side. I am doing this with my Convex backend and seems to be very fast and reliable.

    • @hamedbahram
      @hamedbahram  3 หลายเดือนก่อน

      Perfect! I’ve got to try Convex.

    • @WebDevCodeCrush
      @WebDevCodeCrush 3 หลายเดือนก่อน

      @@hamedbahram I really tried to avoid Convex for a while, but curiousity got the best of me. I now use it for all my projects. The dev experience has been so nice and it intigrates well with Clerk. I had to rethink some things as I used to use prisma and other relational db’s, but it’s very powerful.

  • @guidollaurado2319
    @guidollaurado2319 6 วันที่ผ่านมา

    Thanks for the video, Hamed! I encountered an issue. When using the middleware provided in the tutorial, after signing out, the site redirects me directly to the login page. I need it to display the components I've created for the logged-out state. Do you know how to resolve this?

    • @hamedbahram
      @hamedbahram  5 วันที่ผ่านมา

      Are you using the newer Clerk core 2.0 version or the earlier one?

  • @niconel7659
    @niconel7659 2 หลายเดือนก่อน

    Need a little push in the right direction. So I got this all working (Clerk users in my db with roles and memberships) What would be the best way to check the current user (incl. their role/membership, which are stored in my database)? Wrap the app with my own context? But use context is client side only. Hmm...still so new, huge gaps in my knowledge

    • @hamedbahram
      @hamedbahram  2 หลายเดือนก่อน

      I would use Clerk's helper function to check the current user. For instance, on the server, auth() and currentUser() are App Router-specific helpers. You can also use the `useAuth` hook on client-side. Here is a link to the docs for further reading → clerk.com/docs/references/nextjs/read-session-data

  • @marvinkr
    @marvinkr 3 หลายเดือนก่อน +1

    How does it work for a project in production? Where do we point ngrok?

    • @hamedbahram
      @hamedbahram  3 หลายเดือนก่อน +1

      You don't need ngrok for production, you'll set the webhook to hit your production/deployment domain. Ngrok is just for testing in local development.

  • @techie.ayushsonone07
    @techie.ayushsonone07 หลายเดือนก่อน

    How to use it In Production

    • @hamedbahram
      @hamedbahram  หลายเดือนก่อน

      Same implementation, just need to update the endpoints.

  • @user-gr1uc1xi4u
    @user-gr1uc1xi4u 3 หลายเดือนก่อน

    Please create the tutorial Express js Integrate To Next.js Full Stack Project

    • @hamedbahram
      @hamedbahram  3 หลายเดือนก่อน +1

      Sure thing!

  • @hbela1000
    @hbela1000 3 หลายเดือนก่อน +1

    very good tutorial,thx.

    • @hamedbahram
      @hamedbahram  3 หลายเดือนก่อน

      Glad to hear that!

  • @tamsssss6765
    @tamsssss6765 3 หลายเดือนก่อน +2

    when is the onboarding coming? =D

    • @hamedbahram
      @hamedbahram  3 หลายเดือนก่อน +1

      in about 4 weeks

  • @nethmalwijesinghe5244
    @nethmalwijesinghe5244 2 หลายเดือนก่อน

    What if we want to ban a user automatically based on a thing that he does in the web app?

    • @hamedbahram
      @hamedbahram  2 หลายเดือนก่อน

      Good question! You can use Clerk's backend API to programatically add a user to blocklist. You can read more here → clerk.com/docs/reference/backend-api/tag/Allow-list-Block-list#operation/CreateBlocklistIdentifier

  • @y0ake77
    @y0ake77 หลายเดือนก่อน

    I didn't find this useful, why can't we see it on prisma

    • @hamedbahram
      @hamedbahram  หลายเดือนก่อน

      Can you expand on your question? what do you mean by seeing it on Prisma?

    • @y0ake77
      @y0ake77 หลายเดือนก่อน

      @@hamedbahram the users that signed in

  • @miq_5239
    @miq_5239 27 วันที่ผ่านมา

    13:49

    • @hamedbahram
      @hamedbahram  26 วันที่ผ่านมา +1

      👀

    • @miq_5239
      @miq_5239 25 วันที่ผ่านมา +1

      @@hamedbahram 😂😂 thanks for the vid man, helped me a lot

  • @Duy-ud4fo
    @Duy-ud4fo 2 หลายเดือนก่อน +1

    i got error:
    Error: Base64Coder: incorrect padding
    at Coder._getPaddingLength (webpack-internal:///(rsc)/../../../node_modules/@stablelib/base64/lib/base64.js:199:23)
    at Coder.decode (webpack-internal:///(rsc)/../../../node_modules/@stablelib/base64/lib/base64.js:80:34)
    at Object.decode (webpack-internal:///(rsc)/../../../node_modules/@stablelib/base64/lib/base64.js:213:21)
    at new Webhook (webpack-internal:///(rsc)/../../../node_modules/svix/dist/index.js:405:31)
    at POST (webpack-internal:///(rsc)/./src/app/api/webhooks/test/route.ts:30:16)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    ....
    POST /api/webhooks/test 500 in 59ms
    Can you help me?

    • @hamedbahram
      @hamedbahram  2 หลายเดือนก่อน

      Not sure where that's coming form, compare your code to mine and see what you're doing different.

    • @dubesinhower
      @dubesinhower 2 หลายเดือนก่อน

      I was getting the same error and I figured it out. In the Clerk documentation, it tells you to paste the webhook signing secret into your .env.local file, but for some reason, the documentation does not auto-populate your real webhook signing secret (unlike other places in the Clerk documentation).
      The wrong one looks like this: WEBHOOK_SECRET=whsec_123
      Your real webhook signing secret is located in the Webhooks page of your Clerk dashboard inside your clerk endpoint.
      Hope this helps

    • @hamedbahram
      @hamedbahram  2 หลายเดือนก่อน +1

      @@dubesinhower Thanks for sharing this.