Files
windmill_workflow/alexa-api/auth.js
2026-04-04 09:15:09 +09:00

71 lines
2.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* alexa-api/auth.js
* ローカル PC で実行して Amazon Cookie を取得するスクリプト。
*
* 使い方:
* cd alexa-api
* npm install alexa-cookie2
* node auth.js
*
* → ブラウザで http://localhost:3456 を開く
* → Amazon にログイン
* → コンソールに Cookie が表示される
* → その値を Windmill Variable "u/admin/ALEXA_COOKIE" に登録
*/
const AlexaCookie = require('alexa-cookie2');
const PROXY_PORT = 3456;
console.log('==============================================');
console.log(' Alexa Cookie 取得ツール');
console.log('==============================================');
console.log(`\n認証プロキシを起動中... (port ${PROXY_PORT})`);
console.log('\n【手順】');
console.log(` 1. ブラウザで http://localhost:${PROXY_PORT} を開く`);
console.log(' 2. Amazon アカウントにログインamazon.co.jp');
console.log(' 3. ログイン完了後、このコンソールに Cookie が表示される\n');
AlexaCookie.generateAlexaCookie(
'',
{
amazonPage: 'amazon.co.jp',
acceptLanguage: 'ja-JP',
setupProxy: true,
proxyPort: PROXY_PORT,
proxyOwnIp: '127.0.0.1',
proxyListenBind: '0.0.0.0',
logger: (msg) => {
if (!msg.includes('verbose') && !msg.includes('DEBUG')) {
console.log('[auth]', msg);
}
},
},
(err, cookie) => {
// alexa-cookie2 はブラウザを開くよう促すメッセージも err として渡してくる
if (err) {
const msg = err.message || String(err);
if (msg.includes('Please open')) {
// これは実際のエラーではなく「ブラウザで開いて」という指示
console.log('\n>>> ブラウザで http://localhost:3456/ を開いて Amazon にログインしてください <<<\n');
// プロキシを生かしたまま待機process.exit しない)
return;
}
console.error('\n[ERROR] 認証失敗:', msg);
process.exit(1);
}
console.log('\n==============================================');
console.log(' Cookie 取得成功!');
console.log('==============================================');
console.log('\n以下の値を Windmill Variable に登録してください:');
console.log(' パス: u/admin/ALEXA_COOKIE');
console.log(' Secret: ONチェックを入れる');
console.log('\n--- Cookie ---');
console.log(cookie);
console.log('--- ここまで ---\n');
process.exit(0);
}
);