私は自分のdjangoWebサイトの1つにアクセスするためのモバイルアプリを開発してきました。TastyPieを使用してRESTfulAPIを実行し、JQMobileを使用してフロントエンドを開発しました。ユーザーをログに記録し、ログインしたユーザーにアクセスしたい部分に到達しました。
私はたくさんの読書と検索をしましたが、それでも最善のアプローチが何であるかは本当にわかりません。理想的には、ユーザー名とパスワードを使用してユーザーにログインし、このユーザーでAPIから返されたデータの一部をフィルター処理したいと思います(これはTastyPieのドキュメントから実行できます)。
他の人々は、JQMobileとDjangoを使用してユーザーの認証にどのようにアプローチしましたか。PhoneGapも使用しているので、必要に応じて、ログインから返されたユーザー情報をローカルストレージに保存できます。しかし、モバイルユーザーがアプリを使用しているときに、django側でrequest.userを利用できるようにするために、すべてを一緒にコーディングする方法がよくわかりません。
これまでのところ、ユーザーのサインインに関するTastyPie側のUserResourceの別の投稿からこれを思いついたのですが、ユーザーがサインインした後の対処方法がわかりません。
class UserResource(ModelResource):
class Meta:
queryset = User.objects.all()
resource_name = 'user'
list_allowed_methods = ['get', 'post']
def override_urls(self):
return [
url(r"^(?P<resource_name>%s)/signin%s$" %
(self._meta.resource_name, trailing_slash()),
self.wrap_view('signin'), name="api_signin"),
]
def signin(self, request, **kwargs):
self.method_check(request, allowed=['post'])
# Per https://docs.djangoproject.com/en/1.3/topics/auth/#django.contrib.auth.login...
username = request.GET['username']
password = request.GET['password']
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
return self.create_response(request, {'success': True})
else:
# Return a 'disabled account' error message
return self.create_response(request, {'success': False})
else:
# Return an 'invalid login' error message.
return self.create_response(request, {'success': False})
誰かが共有できるコード、またはユーザーにログインして状態を維持する方法の指針を持っていますか?
乾杯、ベン