Проверка подлинности OAuth2 с помощью CSRF-токена во флаттере - PullRequest
0 голосов
/ 08 июля 2019

Я хочу аутентифицировать мое приложение-флаттер в REST API с помощью пакета Oauth2 , но REST API запрашивает токен CSRF в запросе.Вот мой код, кто-то знает, как и где я могу добавить этот токен?

Я пытался изменить пример кода, предоставляемого библиотекой флаттера Oauth2, но он не работает.

void Login() async {
  final authorizationEndpoint = Uri.parse(
      "http://ipadress:8000/oauth2/authorization/");

  final username = "user";
  final password = "pass";

  final identifier = "DG9GSrfae8gCzWDJU0jbxQC6DAUsTl8dSBMxwPEz";
  final secret = await getCsrftoken();

  var client = await oauth2.resourceOwnerPasswordGrant(
    authorizationEndpoint, username, password,
    identifier: identifier, secret: secret,);

  var result = await client.read("http://ipadress/api/users/me/");
  print(result);

new File("~/.myapp/credentials.json")
    .writeAsString(client.credentials.toJson());

}

Future<String> getCsrftoken() async {
  var response =
  await http.get(Uri.encodeFull('http://ipadress:8000/login/'));
  var csrftoken =
  response.headers.remove('set-cookie').substring(10, 74); //csrf 64 chars
  return csrftoken;
}

$ Запрещено (файл cookie CSRF не установлен.): / Oauth2 / авторизация /

$ "POST / oauth2 / авторизация / HTTP / 1.1" 403 2990

...