* ログインページにアクセスしてCSRFトークンを取得
()
| 103 | * ログインページにアクセスしてCSRFトークンを取得 |
| 104 | */ |
| 105 | private async getCSRFToken(): Promise<{ csrf_token: string }> { |
| 106 | const {JSDOM} = await import("jsdom"); |
| 107 | // cookieなしでログインページにアクセス |
| 108 | const response = await this.session.get(AtCoder.login_url, {headers: {Cookie: ""}}); |
| 109 | |
| 110 | const {document} = new JSDOM(response.data).window; |
| 111 | const input: HTMLInputElement = (document.getElementsByName("csrf_token")[0]) as HTMLInputElement; |
| 112 | |
| 113 | await response.saveSession(); |
| 114 | return {csrf_token: input.value}; |
| 115 | } |
| 116 | |
| 117 | async logout(): Promise<void> { |
| 118 | await this.session.removeSession(); |
no test coverage detected