PythonとGoogle App Engineを使用してカスタム認証プロセスを作成する方法を学ぶことができる場所を知っている人や知っている人はいますか?
認証にGoogleアカウントを使用したくなく、自分のユーザーを作成できるようにしたい。
Google App Engine専用ではない場合、PythonおよびDjangoを使用して認証を実装する方法に関するリソースはありますか?
まあDjango 1.0はGoogle AppEngineで本日更新されました。しかし、他のものと同じようにユーザー認証を行うことができます。非常に大規模なため、実際にはセッションを使用できません。
http://gaeutilities.appspot.com/ にセッションユーティリティがあります
http://gaeutilities.appspot.com/session
http://code.google.com/p/gaeutilities/
または、
独自のユーザーテーブルを作成し、パスワードをハッシュまたは暗号化する必要があります。次に、トークンハッシュまたはUUID Cookieのみでセッションを模倣するトークンシステムを作成する必要があります(セッションはとにかくCookieのみです)。
基本的なgoogle.webappリクエストとレスポンスヘッダーのみをいくつか実装しました。私は通常、ユーザーIDとして主キーのUUIDを使用し、ユーザーのパスワードを暗号化して、リセット用に電子メールを持っています。
データへの外部アクセスをユーザーに許可する場合は、OAuthでアプリケーションアクセスを確認できます。
IDでデータを保存したいだけで、より消費者向けの場合は、openoveridをstackoverflowのように使用し、プロファイルデータをその識別子にDjangoプロファイル( http: //code.google.com/p/openid-selector/ )。
Django 1.0がGAEで本日リリースされたばかりですが、同じ問題が存在すると思います。セッションはありません。セッションデータを格納する独自のものを作成する必要があります。
これはかなりすぐに使えるソリューションであり、かなりうまく機能します: http://code.scotchmedia.com/engineauth/docs/index.html
Facebook、Google +、Twitter、LinkedIn、GitHub、OpenId(Google App Engine経由)のサポートが組み込まれています。
ユーザーを/auth/facebook
または/auth/google
などにリダイレクトするだけです(このURLはカスタマイズ可能です)。
また、User
とUserProfile
の2つのクラスも実装します。すべてのUser
はアプリ内の一意のアカウントであり、1つ以上のUserProfiles
に関連している可能性があります- 1つは、固有のUser
がアプリにログインするためのログイン戦略です(不明な場合は、私の英語が非常に悪いため、 docs で詳しく説明しています)。
追伸:ドキュメントは完全ではありませんが、コードは非常にシンプルで短く、自明です。また、ディスカッション here があり、著者は混乱し始めたユーザーの質問に対するさまざまな回答を提供します。
「アプリエンジンでのカスタムログイン」を検索するたびに、これがgoogleにポップアップ表示されるのを見たので、役立った答えを出すことにしました。これがサンプルアプリケーションです https://github.com/fredrikbonander/Webapp2-Sample-Applications
これは
Webapp2はGAE(webappの上に構築されているため将来の保証)に最適であるように思われるため、GAEによってネイティブにサポートされているフレームワークを使用した認証は良いアイデアです。他にも多くのフレームワークがありますが、それらを機能させるにはユーザー側で多くのハッキングを行う必要があります。 「安定した」サイトを構築したい人にとって、そのようなハッキング作業は非常に望ましくありません。
また、GAEのSQLサポートが現在あり、Djangoはネイティブでサポートされる予定です。Djangoにはユーザー認証システムが組み込まれています。ただし、特にクラウドの世界ではNoSQLが未来だと考えています。NoSQLにはDjangoと同じくらい優れたフレームワークが必ずあると思います。しかし、私にとって、あなたの要件は他の何かを要求するかもしれません。
OpenIDコンシューマー (優れた「アプリエンジンサンプル」オープンソースプロジェクトの一部)は現在機能しており(古いREADMEの警告にもかかわらず)、ユーザーのログインにOpenIDを使用できます。
Djangoの auth も使用できます。 このプロジェクト (少なくともusers
の部分。必ずしもgroups
とpermissions
ではありませんが、いつでも動作する可能性があります)。
Google App Engine上のwebapp2を使用したユーザー認証 と題された、優れた比較的最近の(2013年1月の)ブログ投稿は次のとおりです GitHubリポジトリ:abahgat/webapp2-user-accounts
。
見てください app-engine-patch for Django(私があなたの質問から推測するあなたの好みのフレームワーク)これはgaeでの認証を提供します。
または、 web2py をご覧ください。これは、GAEおよびリレーショナルデータベースで動作するPythonベースのフレームワークです。組み込みのAuthオブジェクトは、ユーザー、グループ、および権限を提供します。
ただし、BigTableへの無制限のアクセスは提供せず、代わりにリレーショナル機能のサブセットを提供します(たとえば、BigTableは結合をサポートせず、web2pyはBigTableモデルをサポートしていません)。
BigTableのサポートは、Web2pyとDjangoコミュニティの両方で議論されています。
しばらくの間、App Engineのカスタム認証システムを探していました。私は最終的にflaskをアプリエンジンで実行することで解決しました。この定型文をアプリエンジンでflaskを実行するために使用しました https://github.com/ kamalgill/flask-appengine-template / and this flask auth extension http://pypi.python.org/pypi/Flask-Auth/ 付属プラグアンドプレイのGoogleアプリエンジンサポートを使用します。flaskにも非常に優れたoAuthライブラリがあるため、最終的にはFacebookやTwitterのログインを簡単に追加できます
私がcotoで取り組んでいるこのプロジェクトを見てください: https://github.com/coto/gae-boilerplate これには、完全に機能するカスタムが含まれています認証システムなど。
別のオプションは ビーカーモジュール です。クライアント側セッションのAES暗号化は素晴らしいです。