11

プロジェクトの場合、GoogleAppEngineで次の場所にアプリケーションを作成します。

  • ディスカッションリーダーは、Webサイト自体に自分の電子メールアドレス(またはOpenIDまたはGoogleアカウント)を登録して使用できます。
  • アプリケーション管理ページで、電子メールアドレスに基づいてユーザーを追加できるグループディスカッションを作成できます。
  • そして、これらのユーザーは、生成されたアカウントの詳細(まだアカウントを持っていない場合)を受け取り、新しく作成されたアカウントでそのグループディスカッションにログインできるようにする必要があります。

アプリケーションに登録するためにディスカッションリーダーにGoogleアカウントまたはOpenIDアカウントを要求したくありません。他のすべてのユーザーのアカウントは、ディスカッションリーダーによって生成される必要があります。

ただし、GoogleAppEngineはGoogleアカウントとOpenIDアカウントのみをサポートしているようです。どうすればいいですか?GAE UserAPIを引き続きサポートするGoogleApp Engine内からリーダーアカウントを作成し、ユーザーアカウントを生成するための既存のパターンはありますか?

4

3 に答える 3

8

エンジン認証

数か月前、私はEngineAuthという python パッケージを開発しました。ミドルウェアを使用して、認証を目的としたリクエストを傍受します。

アプリの例を次に示します。

http://engineauth.scotchmedia.com/

そしてソース:

https://github.com/scotch/engineauth

EngineAuthにはさまざまな認証戦略があります。そのうちの 1 つがパスワードです。

Passwordは、パスワードと文字列 (電子メールの場合もあります) を取ります。文字列がデータストアにある場合、保存されているハッシュに対してパスワードをチェックします。一致する場合は、ユーザーをログインさせます。文字列がデータストアにない場合は、新しいユーザーを作成します。

EngineAuthには、App Engine Openid を使用してユーザーをログインできるようにするappengine_openid戦略もあります。

EngineAuth の優れた点は、ユーザーが App Engine OpenID にログインしている場合にパスワードを使用してログインすると、ユーザーが両方の戦略に関連付けられることです。

aeauth

しかし、私はEngineAuthに完全には満足していなかったので、より webapp2 に依存するモジュール設計を作成することにしました。私は今Goでプロジェクトを開発しているので、完了したことはありませんが、コードが役立つかもしれません.

webapp2 認証

EngineAuthaeauthのパスワード機能の多くは、webapp2_extras/auth から取得されたもので、単純なアプローチを提供する可能性があります。

于 2012-06-18T17:28:12.190 に答える
4

GAEUser APIは、現在ログインしているユーザーとその属性の一部を提供するためだけに存在します。とにかく、この情報をモデル内のデータストアに保存する必要がありますUser

そこから、ビジネスロジックで好きなことをしたり、メールに基づいてユーザーを保存/作成したりする方法、これらのユーザーをどうするか、グループ化する方法などを行うことができます.

またはOAuthのようなログインをサポートするには、これらのサービスからユーザーを認証する方法 (キーの登録、権限の要求など) について独自の API を使用する必要があります。幸いなことに、この問題をカバーするフレームワークはたくさんありますが、それはあなたの構造と現在使用しているものによって異なります。FacebookTwitter

(免責事項は私のものです)新しいアプリを作成しているだけなので、gae-initプロジェクトを見ることができます。これは基本的に、既に.プロパティを変更できます。ただし、すでに GAE に精通している必要があります。GoogleFacebookTwitter

于 2012-06-18T13:57:42.850 に答える
3

Google アカウントまたは OpenID アカウントを要求したくない場合は、独自のアカウント システムを作成する必要があります。これにより、最大限の自由が得られますが、多くの作業が必要であり、パスワードのセキュリティに責任を負うことになります (痛い)。個人的には、この要件を再考することをお勧めします。特に OpenID には多くの利点があります (IIUC を除いて、Facebook を使用するのはそれほど簡単ではありません)。

于 2012-06-19T02:57:46.530 に答える