curlでログインしてAPIを叩く

Spring Bootで作った認証で保護されているAPIを叩く。

ログインページに入って、セッションを確立する

-c オプションでクッキーを保存する。

$ > curl -c my.cookie http://localhost:8080/login

以下みたいなクッキー(のファイル)ができるのでcatで確認

$ > cat my.cookie

# Netscape HTTP Cookie File
# http://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.

localhost       FALSE   /       FALSE   0       XSRF-TOKEN      5f0854a9-e3ba-480c-91ed-e19505aecb08
#HttpOnly_localhost     FALSE   /       FALSE   0       JSESSIONID      A4D102840F355F72123DEACCDCD64941

-bオプションでできたクッキーを使ってログイン また、クッキーに書かれたXSRF-TOKENをヘッダに付与する

$ > curl -XPOST -b my.cookie http://localhost:8080/login/post -c my.cookie -H "X-XSRF-TOKEN:e76acbd1-234e-456e-970d-751e5a21c3c9"

認証で保護されているAPIを叩いてみる。

$ > curl -b my.cookie http://localhost:8080/user
// APIのレスポンス
{....}

割と泥臭い。 初めてcurlでログインからAPIまで叩いた気がする。