16

Python(Django / Flask)で利用できる成熟したフレームワークにかなり甘やかされてしまったので、Goを学び始めているので、Gotodjango.contrib.authに同様のフレームワークがすでに存在するかどうか疑問に思う必要があります。またはFlask-ログイン?

主なユースケースは、単純なユーザー認証を処理し、それを拡張して、アプリ内の権限ベースのルーティングに対応できるようにすることです。

4

2 に答える 2

24

私の知る限り、ありません。すぐに使用できる最も近い認証は、おそらく Google AppEngine 経由です。この認証では、ユーザーの Google アカウントを取得でき、特定のパスをアプリ管理者のみに限定できます。

標準の Go Web サーバーでは、通常、独自の認証をロールする必要がありますが、思ったほど難しくはありません。多くのフレームワークは、実際には非常に重要な決定からあなたを切り離します。典型的な Go のやり方では、アプリのニーズに基づいてこれらの決定を行い、適切な既存のライブラリを選択する必要があります。

ログインページ

ユーザーがログインする必要がある場合は、HTML フォームを使用することになるでしょう。これらは通常、html/templateパッケージを使用してレンダリングされます。フォームの送信時に値を取得するには、request.FormValueを使用します。

データベース

ユーザー情報を保存する方法はいくつかあります。osを使用したファイルシステム上、またはdatabase/sqlを使用した SQL データベース内。MongoDBRedisなど、一部の NoSQL データベース用の成熟したドライバーもあります。

パスワード

ハッシュを計算してパスワードと比較するには、既存のメカニズムを使用して、自分で再発明する必要がないようにする必要があります。このために、go.crypto サブリポジトリはbcryptパッケージを提供します。

セッション

セッション データを保存する場合は、 gorilla/sessionsなどのソリューションを使用できます。セキュリティのニーズに基づいて、セッション データを (オプションで保護された) Cookieに直接保存するか、バックエンドに保存してセッション ID のみを Cookie に保存することができます。

于 2013-03-13T06:21:49.367 に答える