Cloudflare wrangler login 실패 해결 (Timed out / consent already used / localhost 연결 거부)
wrangler login이 'Timed out waiting for authorization code', 'consent verifier has already been used', localhost ERR_CONNECTION_REFUSED로 실패할 때, API 토큰 방식으로 우회하는 해결법.
Cloudflare wrangler login 실패 해결 (Timed out / consent already used / localhost 연결 거부)
이 글은 블로그→인스타 자동화 (5) DM의 벽 작업 중 Cloudflare Workers 배포에서 만난 문제입니다.
증상
wrangler login이 브라우저 인증 후 이런 에러로 실패한다.
1
✘ [ERROR] Timed out waiting for authorization code, please try again.
또는 재시도 시:
1
▲ [WARNING] Received query string parameter doesn't match the one sent! Possible malicious activity somewhere.
콜백 화면에는 localhost:8976/oauth/callback?error=access_denied ... The consent verifier has already been used + ERR_CONNECTION_REFUSED.
원인
- 로그인 OAuth는 로컬 콜백 서버(localhost:8976) 가 떠 있는 동안 승인을 받아야 한다.
- 백그라운드/반복 실행으로 state가 어긋나거나, 승인 시점에 콜백 서버가 이미 종료돼 있으면 위 에러가 난다(consent 재사용·연결 거부).
해결 — OAuth 대신 API 토큰
브라우저 콜백을 아예 쓰지 않는 Cloudflare API 토큰 방식이 확실하다.
- Cloudflare 대시보드 → My Profile → API Tokens → Create Token → “Edit Cloudflare Workers” 템플릿
- 발급된 토큰을 환경변수로 사용:
1
2
export CLOUDFLARE_API_TOKEN="발급받은_토큰"
npx wrangler deploy # 이제 브라우저 로그인 없이 동작
서브도메인 등록 등도 API로 가능하다(PUT /accounts/{id}/workers/subdomain). localhost 콜백 이슈가 원천 차단된다.
정리
wrangler login콜백 에러는 state 충돌 + 콜백 서버 미가동이 원인.- API 토큰(CLOUDFLARE_API_TOKEN) 으로 우회하면 브라우저 OAuth 없이 배포된다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.
