Add "X-CSRFToken" header for new Docker Hub API changes

This commit is contained in:
Tianon Gravi 2018-12-24 11:41:10 -08:00
parent f150010e4a
commit c35e6aa062
1 changed files with 13 additions and 1 deletions

14
push.pl
View File

@ -45,10 +45,22 @@ die 'login failed' unless $login->success;
my $token = $login->res->json->{token};
my $csrf;
for my $cookie (@{ $login->res->cookies }) {
if ($cookie->name eq 'csrftoken') {
$csrf = $cookie->value;
last;
}
}
die 'missing CSRF token' unless defined $csrf;
my $attemptLogin = $ua->post('https://hub.docker.com/attempt-login/' => {} => json => { jwt => $token });
die 'attempt-login failed' unless $attemptLogin->success;
my $authorizationHeader = { Authorization => "JWT $token" };
my $authorizationHeader = {
Authorization => "JWT $token",
'X-CSRFToken' => $csrf,
};
my $userData = $ua->get('https://hub.docker.com/v2/user/' => $authorizationHeader);
die 'user failed' unless $userData->success;