一、阿里云一键登录预登录失败
1、在进行阿里云一键登录前,用户需要进行预登录。用户打开阿里云登录页,输入账号和密码,完成登录,此时会生成一条阿里云登录的Cookies,即ALIYUN_ID_Token和ALIYUN_JWT_Token,这两个Cookies是进行阿里云一键登录的必要参数。如果这两个Cookies因为登录session过期或其他原因失效了,那么进行一键登录的时候就会预登录失败。
2、解决预登录失败的问题需要重新登录,生成新的Cookies,将其设置在本地,再进行阿里云一键登录即可。
下面给出代码示例:
const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch({ headless: false, // 非无头模式方便我们观察执行效果 defaultViewport: { width: 1000, height: 800 } }); const page = await browser.newPage(); await page.goto('https://www.aliyun.com'); // 在此进行登录 const cookies = await page.cookies(); const aliyunIdToken = cookies.filter(cookie => cookie.name === 'ALIYUN_ID_Token')[0]; const aliyunJwtToken = cookies.filter(cookie => cookie.name === 'ALIYUN_JWT_Token')[0]; // 将Cookies设置在本地 // ... await browser.close(); })();
二、阿里云手机号一键登录
1、阿里云支持手机号一键登录。用户在登录页选择手机号登录,输入手机号码后进行下一步。此时会发送短信验证码到用户手机,用户输入验证码即可完成登录。
2、实现手机号一键登录需要在阿里云管理控制台进行相应的配置,具体可参考阿里云官方文档:
https://help.aliyun.com/document_detail/66099.html?spm=a2c4g.11186623.6.558.71d06a9ec32buR
三、阿里云一键登陆协议点击无响应
1、阿里云一键登陆协议点击无响应,可能是因为本身点击逻辑有误,也可能是因为协议对应的url地址失效。
2、解决此类问题需要在代码中进行检查。首先验证页面上协议链接地址是否正确,其次验证协议对应的url地址是否可以正常访问。
下面给出代码示例:
const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch({ headless: false, // 非无头模式方便我们观察执行效果 defaultViewport: { width: 1000, height: 800 } }); const page = await browser.newPage(); await page.goto('https://www.aliyun.com'); // 检查协议链接 const agreement = await page.$('#agreement'); const agreementHref = await agreement.$eval('a', link => link.getAttribute('href')); console.log(agreementHref); // 打印协议链接的地址 // 验证协议链接的地址是否可以正常访问 const response = await page.goto(agreementHref, { waitUntil: 'domcontentloaded' }); console.log(response.status()); // 打印请求返回的状态码 // 点击同意协议 await page.click('#agreement'); // ... await browser.close(); })();