web-dev-qa-db-ja.com

Django-REST-AUTHとALLAUTHを使用したGoogle認証

Google認証登録/ログインフォームでユーザーをログインするFlutterアプリの認証APIを作成しようとしています。これを実行するためにこれを続けました チュートリアル を実現します。

これまでのところ、チュートリアルはGoogleではなくGitHubサインインに基づいていることを除いて。ステップ「接続」ステップまで上に取り組むことができました。リダイレクトからcodeを取得できますが、アクセスしたときhttp://127.0.0.1:8000/auth/google/私はそれが2つのフィールドを求めているのを見ます(access_tokencode)。私が情報を投稿しようとすると、私は次のエラーが発生しました:

 "non_field_errors": [
        "View is not defined, pass it as a context variable"
]
 _

enter image description here

6
Marco Fernandes

これを試して:

class GoogleLogin(SocialLoginView):
    adapter_class = GoogleOAuth2Adapter
    client_class = OAuth2Client
    serializer_class = SocialLoginSerializer

    def get_serializer(self, *args, **kwargs):
        serializer_class = self.get_serializer_class()
        kwargs['context'] = self.get_serializer_context()
        return serializer_class(*args, **kwargs)


google_login = GoogleLogin.as_view()
 _
1
JACKSON MOURA

これはDjangorestFramework => 3.12のソリューション:DjangorestFramework <= 3.11.0にダウングレードし、すべてが大丈夫になるはずです。

1