49°F

Aaron Parecki

  • Articles
  • Notes
  • Photos
  • Adding Support for BlueSky to IndieLogin.com

    October 11, 2025

    Today I just launched support for BlueSky as a new authentication option in IndieLogin.com!

    IndieLogin.com is a developer service that allows users to log in to a website with their domain. It delegates the actual user authentication out to various external services, whether that is an IndieAuth server, GitHub, GitLab, Codeberg, or just an email confirmation code, and now also BlueSky.

    This means if you have a custom domain as your BlueSky handle, you can now use it to log in to websites like indieweb.org directly!

    bluesky login

    Alternatively, you can add a link to your BlueSky handle from your website with a rel="me atproto" attribute, similar to how you would link to your GitHub profile from your website.

    <a href="https://example.bsky.social" rel="me atproto">example.bsky.social</a>
    

    Full setup instructions here

    This is made possible thanks to BlueSky's support of the new OAuth Client ID Metadata Document specification, which was recently adopted by the OAuth Working Group. This means as the developer of the IndieLogin.com service, I didn't have to register for any BlueSky API keys in order to use the OAuth server! The IndieLogin.com website publishes its own metadata which the BlueSky OAuth server can use to fetch the metadata from. This is the same client metadata that an IndieAuth server will parse as well! Aren't standards fun!

    The hardest part about the whole process was probably adding DPoP support. Actually creating the DPoP JWT wasn't that bad but the tricky part was handling the DPoP server nonces sent back. I do wish we had a better solution for that mechanism in DPoP, but I remember the reasoning for doing it this way and I guess we just have to live with it now.

    This was a fun exercise in implementing a bunch of the specs I've been working on recently!

    • OAuth 2.1
    • DPoP
    • Client ID Metadata Document
    • Pushed Authorization Requests
    • OAuth for Browser-Based Apps
    • Protected Resource Metadata

    Here's the link to the full ATProto OAuth docs for reference.

    Portland, Oregon • 53°F
    Sat, Oct 11, 2025 9:49am -07:00 #oauth #bluesky #atproto #indieweb
    75 likes 16 reposts 1 bookmark 9 replies
    • Ryan Barrett
    • Juan to Suck Your Blood
    • Nick Sittinger
    • Olivier Simard-Casanova
    • Achille Lacoin
    • '(Re)Skeets' on BlackSky
    • Laurens
    • Etienne
    • Jake Gold
    • Zachary πŸ¦‹
    • Eric
    • jack πŸŽƒπŸ‚
    • Max
    • Julien Genestoux
    • πŸŽƒ Crash (2004) enjoyer πŸŽƒ
    • elliot hopkins
    • Barry Frost
    • Erlend Sogge Heggen
    • Khan Winter
    • dan
    • Alexandre Plennevaux πŸ‡§πŸ‡ͺπŸ‡ͺπŸ‡Ί
    • Jim Pick
    • Ana
    • πŸ‘οΈπŸ‘…πŸ‘οΈ
    • Kim Maida
    • Wheyβ€½
    • vielle.dev πŸͺ€
    • Ryan
    • Bailey Townsend πŸ¦€
    • brendan
    • reece.py
    • henry ✷
    • zeu
    • Sri
    • Nick Gerakines
    • Matthieu πŸ¦‹
    • Peter B. Clarke
    • Boris
    • bryan newbold
    • Shack
    • Tijs Teulings πŸ¦‘
    • leah
    • Victoria
    • Marc Littlemore
    • Torsten Goerke
    • Simone or /^syx.*$/
    • James Walker
    • devin ivy πŸ‹
    • Chris Coleman
    • Tynan Purdy
    • nichoth
    • Vale
    • ben
    • Yves Venedey
    • Index
    • Haadi
    • Mike Merrill
    • Sum Ting Wong π“ˆ†3%
    • Jon
    • Simeon Simeonoff
    • Shaun Guimond
    • JC John Sese Cuneta μ‚¬μš”ν•œ 謝ι›ͺ矒 πŸ¦‹
    • sea breeze
    • Veikko Eeva
    • Dr Walsh
    • Sona
    • Neil Hainsworth
    • Joe Crawford
    • humberto
    • Sooup
    • nandi β˜‘οΈ
    • Andregamingyt3k
    • Taff Mc π“…› #20Times πŸ†
    • '(Re)Skeets' on BlackSky
    • henry ✷
    • Matthieu πŸ¦‹
    • Scary Mary Branscombe
    • Achille Lacoin
    • Erlend Sogge Heggen
    • vielle.dev πŸͺ€
    • Jon P
    • elliot hopkins
    • Volker Mische
    • Eric
    • Boris
    • Torsten Goerke
    • humberto
    • nandi β˜‘οΈ
    • Barry Frost
    • Lucien Noguès bsky.app/profile/lucien.nogues.ca
      Hi. Juste a Little question. It is possible with #Nostr ?
      Tue, Oct 14, 2025 7:10pm +00:00 (via brid.gy)
    • Sooup bsky.app/profile/sooup222.bsky.social
      idk maybe its just cause the logo looks corporate
      Sun, Oct 12, 2025 10:48pm +00:00 (via brid.gy)
    • Aaron Parecki bsky.app/profile/aaronpk.com
      even with all the emoji? lol
      Sun, Oct 12, 2025 10:47pm +00:00 (via brid.gy)
    • Sooup bsky.app/profile/sooup222.bsky.social
      The indieweb website looks so formal
      Sun, Oct 12, 2025 10:46pm +00:00 (via brid.gy)
    • azmal bsky.app/profile/azmalofficial.bsky.social
      πŸ‘πŸ‘‹
      Sun, Oct 12, 2025 12:44pm +00:00 (via brid.gy)
    • ben bsky.app/profile/benharri.org
      very cool! i went to go try this but my site is already set up for indieauth and it never got to the bsky part how does it work for non-bsky.social handles?
      Sun, Oct 12, 2025 12:26am +00:00 (via brid.gy)
    • Aaron Parecki bsky.app/profile/aaronpk.com
      Yeah I definitely went hard mode by writing everything from scratch (except the JWT signing). Partly because I wanted to see what it actually takes to implement a library, partly because I can't stand the current state of most language's package management πŸ˜…
      Sat, Oct 11, 2025 9:05pm +00:00 (via brid.gy)
    • bryan newbold bsky.app/profile/bnewbold.net
      ... but ideally this all gets abstracted away by a library/SDK
      Sat, Oct 11, 2025 9:03pm +00:00 (via brid.gy)
    • bryan newbold bsky.app/profile/bnewbold.net
      yay, this is great! I agree that DPoP nonce juggling is one of the harder bits, especially because they also need to juggle token refresh. so there are two reasons a resource request might need to be retried. also DPoP nonce error signaling is different between auth srv + resource srv
      Sat, Oct 11, 2025 9:03pm +00:00 (via brid.gy)
Posted in /articles using quill.p3k.io

Hi, I'm Aaron Parecki, Director of Identity Standards at Okta, and co-founder of IndieWebCamp. I maintain oauth.net, write and consult about OAuth, and participate in the OAuth Working Group at the IETF. I also help people learn about video production and livestreaming. (detailed bio)

I've been tracking my location since 2008 and I wrote 100 songs in 100 days. I've spoken at conferences around the world about owning your data, OAuth, quantified self, and explained why R is a vowel. Read more.

  • Director of Identity Standards at Okta
  • IndieWebCamp Founder
  • OAuth WG Editor
  • OpenID Board Member

  • πŸŽ₯ YouTube Tutorials and Reviews
  • 🏠 We're building a triplex!
  • ⭐️ Life Stack
  • βš™οΈ Home Automation
  • All
  • Articles
  • Bookmarks
  • Notes
  • Photos
  • Replies
  • Reviews
  • Trips
  • Videos
  • Contact
© 1999-2025 by Aaron Parecki. Powered by p3k. This site supports Webmention.
Except where otherwise noted, text content on this site is licensed under a Creative Commons Attribution 3.0 License.
IndieWebCamp Microformats Webmention W3C HTML5 Creative Commons
WeChat ID
aaronpk_tv