ドメイン認証用のWebサイトをAstroでサクっと作った
Astroで簡単に自分だけのドメイン認証サイトを作る方法、始めよう
分散型SNSが乱立してきたので、各種アカウントが自分のものであると証明しやすくなるようにドメインをとった。ドメインだけでもいいのだけど、せっかくなので自分の各種アカウントへのリンクを掲載するLink in bioのページにした。
パーソナルサイトなのでドメインは mtane0412.me
にした。
経緯としては、Nostrのドメイン認証のときにGithub PagesでLink in bioを作っていたのだが、先日一般公開されたBlueskyもカスタムドメインに対応していたので、せっかくなので独自ドメインをとってサイトも作り直しちゃおうと思い立った。
こういうちょっとしたものを作るのは枯れた技術のほうが良いなと思っていて、以前はHugoで作ってたのだけど、最近触り始めたAstroで作ってみることにした。
結論から言うとAstroはめちゃくちゃ作りやすかったので、もう全部これでいいなという感じだった。独自の構文という感じは少なくて、直感的なJavaScriptの構文で書けるし、Astro iconなんかの便利なセットもあったのでアイコンも簡単に用意できたし、ドキュメントの日本語化もすごい進んでいる。
もっと複雑なことをやろうと思ったらReactとかの既存技術といくらでも組み合わせ可能なのも熱い。
さらに吐き出されるコードは基本的にゼロJSでパフォーマンスもめちゃくちゃいい。LighthouseでBest Practicesが減点くらってるのは調べてみるとバグらしくて悲しい…。
おまけのサイトができたので、本来の目的である各種ソーシャルメディアのアカウントがmtane0412.meの所有者である証明を行っていく。
Nostrは https://mtane0412.me/.well-known/nostr.json を参照してドメインの確認をとっている。(Nostr.comのほうはなかなか更新されてなくてよくわからない)
BlueskyはDNSでDIDを返してあげると認証されるDNS認証が一般的っぽいが、Nostrですでにファイル形式をやっていてなんとなく合わせたくなったので、こちらも https://mtane0412.me/.well-known/atproto-did にDIDを置いておく。
Blueskyは@以下がドメインになるので、個人はなんかあれだけど有名な公式アカウントとかはめちゃくちゃわかりやすくなるだろう。
Fedibird(Mastodon)やMisskey.ioはリンク先のページにrel="me"
でバックリンクがあると所有者確認が取れるようだ。
という感じで一通り作業終わり。僕の場合、ただの自己満足なんだけど、分散型の時代は色んなところにアカウントが散在する形になるのでこういった認証の方法を取っておいたほうがいい。有名な人はしばしば偽物が出現して、もともと活動していた著名なアカウントで新アカウントを言及するとかで認証してたけど、サービス側のこういう仕組みでわかりやすくするとよいのだろうな〜と思った。分散型の時代はいろいろな人がデジタルアイデンティティのために自分のサイトを持ったりするようになると、一昔前のWebっぽい感じになって楽しそうだなと思いました。