Hijk 支援 HTTP Auth
作者:gugod 發佈於:雖然在文件中看不出來,但 Hijk 這個低階的 HTTP 客戶端函式庫是算是「支援」 HTTP Auth 。
HTTP Auth 這個機制是透過在訊息表頭上加入特定的值,參考 Wikipedia: Basic access authentication 這則文章中的說明,在請求訊息中的這行表頭:
Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l
便表示了「本訊息由某某某授權發出」。而那段看來複雜的字串,其生成方式則為:
(encode_base64("Aladdin:OpenSesame") =~ s/\n//r);
其中 Aladdin
是帳號,OpenSesame
是密碼。可用以下指令驗證:
perl -MMIME::Base64=encode_base64 -E 'my $digest = (encode_base64("Aladdin:OpenSesame") =~ s/\n//r); say $digest;'
#=> QWxhZGRpbjpPcGVuU2VzYW1l
使用 Hijk::request
時,則是傳入於 head
參數內,大約如下:
my $digest = (encode_base64("${user}:${pass}") =~ s/\n//r);
my $res = Hijk::request({
...
head => [ 'Authorization' => "Basic $digest", ... ],
...
});
HTTP Cookie 也是同樣的「支援」方式。
🍻🍻🍻