12

Facebook 統合に django-allauth を使用し、iOS アプリのバックエンドに django-tastypie を使用する Django アプリを作成しています。iOS アプリは、ネイティブの Facebook iOS SDK を使用します。Web サイトに加えて、iOS アプリからも Facebook ユーザーと非 Facebook ユーザーの両方にサインアップして確認できるようにしたいと考えています。

問題は、django-allauth に外部からアクセスできる API がないように見えることです。allauth の機能にプラグインする唯一のクリーンな方法は、Django テンプレート タグを使用することのようです。この機能をtastypieで使用できるように公開する方法はありますか?

Django-allauth はすべてオープン ソースなので、コードを解析してみました。私の最初のアイデアは、ネイティブの Facebook SDK を使用して iOS 側でユーザーを認証し、次に SocialAccount、SocialToken の情報を手動で入力し、SocialAccount を SocialApp に追加することです (これらはすべて django-allauth モデルです)。ただし、これは非常にハックなソリューションのようです。Facebook ID などを指定して、これらすべてのモデルをきれいに作成する方法が欲しいです。

更新: GitHubで、この問題に関する いくつかの議論がありました。基本的に、組み込み機能はまだありません。Facebook のみを扱うカスタム ソリューションを作成します (アプリケーションで使用しているのは Facebook だけなので)。うまくいった場合は、後でここで行ったことを投稿します。

4

2 に答える 2

1

django-allauth を簡単に調べると、SocialAccount モデルを使用して、特定の認証方法とソーシャル アカウントの種類に関するデータを保持していることがわかります。

SocialAccount モデルに基づいて API エンドポイントを作成する必要があります。アカウントの種類 (facebook、local、twitter など)、ソーシャル認証プロバイダーに必要な追加の認証変数などの変数をそこに渡す必要があります。次に、コードで SocialAccount モデル インスタンスを作成し、API エンドポイント呼び出しから受信したデータをフィードして、django-allauth を介して対応する認証呼び出しをトリガーできます。最後に、auth 呼び出しの結果を返す必要があります。

ローカル/Facebook認証のみにdjango-allauthを使用する大きな理由はわかりません。少しの努力で、ソーシャル認証プロバイダーの全範囲を使用できます。

于 2013-10-17T14:38:16.663 に答える