django-rest-auth с Google: как правильно разместить токен доступа - PullRequest
0 голосов
/ 12 февраля 2019

Я действительно новичок в использовании retrofit2.Я пытаюсь отправить токен доступа в серверную часть из мобильного приложения и аутентифицировать пользователя через Google, но не могу сделать это правильно.Бэкэнд возвращает 400. Мой код такой.

views.py

from allauth.socialaccount.providers.google.views import GoogleOAuth2Adapter
from rest_auth.registration.views import SocialLoginView


class GoogleLogin(SocialLoginView):
    adapter_class = GoogleOAuth2Adapter

urls.py

path('rest-auth/google/', GoogleLogin.as_view()),

И мой код Java (я используюretrofit2)

public interface ApiService {
    // login
    @POST("/rest-auth/google/")
    Call<String> login(@Header("access_token") String accessToken);

MainActivity.java

    private void login() {
    ApiService service = ApiClient.getService();

    service.login(mAuthToken).enqueue(new Callback<String>() {
        @Override
        public void onResponse(Call<String> call, Response<String> response) {

            if (!response.isSuccessful()) {
                Toast.makeText(MainActivity.this, "Code:" + response.code(), Toast.LENGTH_LONG).show();
                return;
            }

            Toast.makeText(MainActivity.this, "Success!", Toast.LENGTH_LONG).show();
        }

        @Override
        public void onFailure(Call<String> call, Throwable t) {
            mTextViewResult.setText(t.getMessage());
        }
    });
}

mAuthToken - токен доступа.Я думаю, что я не прав, как передать маркер доступа в бэкэнд.Я могу ошибаться с retrofit2 part.Что я не так с этим?

Обновление

Я нашел вещь.Токен доступа, который я получаю в Android, и токен доступа, который я получаю при входе через веб-сайт, очевидно, отличаются.Я удалил пользователя и ввел токен доступа в html-форму вручную, запрос принят.

Итак, я думаю, что есть проблема с токеном доступа, который я получаю в Android, но я не знаю, как я могу это исправить.

...