Django1.3で構築されたWebアプリケーションがあります。また、モバイルアプリで使用されるjsonを返すAPI関数も提供しています。ここで、認証には、ビューでlogin_requiredデコレータを使用します。ただし、APIの場合、HTML(ログインページにリダイレクト)を返し、モバイルには独自のログイン画面があるため、これは機能しません。ユーザーにログインを求めるjson応答を返したい。
これをどのように実装できますか?
Django1.3で構築されたWebアプリケーションがあります。また、モバイルアプリで使用されるjsonを返すAPI関数も提供しています。ここで、認証には、ビューでlogin_requiredデコレータを使用します。ただし、APIの場合、HTML(ログインページにリダイレクト)を返し、モバイルには独自のログイン画面があるため、これは機能しません。ユーザーにログインを求めるjson応答を返したい。
これをどのように実装できますか?
独自のデコレータを作成できます。https://github.com/django/django/blob/master/django/contrib/auth/decorators.pyでlogin_requiredのコードを参照してください。
代わりに、redirect_to_loginをコードに置き換えて、jsonエラーメッセージを返す必要があります。