4

Python と Django non-rel を実行して、Google App Engine でサイトを構築しています。HTML とデータの投稿/読み取りにはすべてがうまく機能しています。しかし、前進するにつれて、多くの更新を AJAX で行い、最終的には Android や iPhone などのモバイル デバイスでも行いたいと考えています。

私のページは django non-rel を使用しており、ログイン/ログアウト認証は HTML でうまく機能します。ただし、JSON 経由で送信される更新情報は、ユーザーが変更できることを認証する必要があります。Web サイトにアクセスしているので、AJAX 呼び出しだけの認証を行うことはそれほど難しくないことがわかりますが、携帯電話認証を投入する場合はどうでしょうか。

だから私はこれに不慣れです、どこから始めればいいですか?

認証済みの CRUD 操作を実行できるように、gae でサービスをセットアップするにはどうすればよいですか? 理想的には、ajax、Android などにまったく同じ REST サービスを使用したいと考えています。

4

1 に答える 1

2

Pythonを使用すると、これは非常に簡単になります。認証をチェックするデコレータメソッドを作成し、認証クレデンシャルを必要とするメソッドにデコレータを追加するだけです。

def admin(handler_method):
  """
  This decorator requires admin, 403 if not.
  """
  def auth_required(self, *args, **kwargs):
    if users.is_current_user_admin():
      handler_method(self, *args, **kwargs)
    else:
      self.error(403)
  return auth_required

...

@admin
def crudmethod_update(self, *args, **kwargs):
  ...

念のために言っておきますが、これはユーザーデータなどを取得する方法についていくつかのことを前提としていますが、原則はどの設定でも同じです。あなたが取り組んでいる可能性のある概念は、ajax呼び出しはサーバー上で何らかの形で異なる方法で処理されるということですが、他のRESTfulメソッドと同様に、実際には同じヘッダーを取得しています。標準のhtmlリクエストで認証を確認できる場合は、ajaxリクエストを使用してフォーム送信を文字通りハイジャックし、同じ結果を返すことができます。代わりにJSONを取得するか、HTMLの小さな部分を取得し、そのために次のいずれかを実行することをお勧めします。

  1. リクエストにチェックインできるものを追加して、それがajaxリクエストであることを確認し、それに応じて調整します。

  2. 特にajaxリクエストを処理するためのRPCモデルを実装します。

実際に認証を処理するには、google.appengine.extユーザーライブラリを使用してGoogleアカウントの認証に乗るか、独自の認証を作成できます。もちろん、独自に作成するということは、セッションメカニズム(ユーザーセッション全体で状態を保持するため)を実装し、検証のためにパスワードをハッシュおよびソルト状態で保存することを意味します。

于 2010-09-22T17:16:05.247 に答える