Goの認証ライブラリgo-dev-auth、外部依存ゼロで本番運用に到達
How HN: Go-dev-auth zero-dependency authentication library for Go
better-authをモデルにしたGo向けの包括的な認証ライブラリ。メール/パスワード、ソーシャルログイン、セッション、2要素認証、パスキー、マジックリンク、組織、SSO、APIキー、JWTを標準ライブラリのみで実装。SQLite、PostgreSQL、MySQLの実サーバーに対するCI検証を通過し、PostgreSQLでは本番運用中。v1.0に向けて第三者セキュリティレビューなどの課題が残る。
TrustProxyHeadersをTrustedProxiesなしで設定すると、X-Forwarded-Forはクライアントが自由に指定できるため、呼び出し側が自分のバケットを選べてしまい、レート制限が何も制限しなくなる。
- LVB
個人的にはここに見るべきものは何もないと思う。1ヶ月で大量のコードが積み上げられただけだ。
ここでの売りは「依存ゼロ」だが、そこまで来ると、向こうもおそらくやったであろうように、自分もClaudeにやらせればいいじゃないかと思う。ちなみに自分は、十分にテストされメンテナンスされた依存を持ち込むことには全く問題ないと思っている。ここでやっているように、暗号プリミティブに至るまですべてを手書きするのは、利点にはならない。
- coppercrisp62
Goで依存ゼロとなると、bcrypt/argon2のためにx/cryptoを引っ張ってくるか、stdlibからscryptを手書きするかのどちらかになるわけだが、パスワードハッシュは最終的にどこに落ち着いたのか気になる。自分もその道を通ったことがあるが、stdlibのpbkdf2は最近まで存在しなかった。
- computerfriend
READMEとコミットメッセージは、開示なしにLLMによって書かれていた。コードは見ていない。