uni-app 定制一个获取第三方网站cookie的插件

发布于 1周前 作者 phonegap100 来自 Uni-App

uni-app 定制一个获取第三方网站cookie的插件

开发思路

  1. 用uni-app 打开一个第三方网站 然后输入账号密码登陆。
  2. 登陆成功后 获取当前登陆账号的cookie 并打印出来
  3. 清空浏览器缓存,使其下次打开网站的时候又是一个未登录的状态
4 回复

之前做过类似的,联系QQ:1804945430


可以做 专业插件开发 q 1196097915 主页 https://ask.dcloud.net.cn/question/91948

写段js注入到页面就可以获取到了

在 uni-app 中定制一个获取第三方网站 cookie 的插件是一个相对复杂的任务,因为 uni-app 主要用于跨平台应用开发,其运行环境通常不具备直接访问第三方网站 cookie 的能力。不过,你可以通过一些变通的方法来实现这一功能,例如使用云函数或者服务器端代理。

以下是一个基于云函数的示例,展示如何通过云函数来获取第三方网站的 cookie。请注意,这种方法依赖于你的云函数服务提供商(如阿里云、腾讯云等)允许发出 HTTP 请求。

步骤 1: 配置云函数

首先,你需要在 uni-app 项目中配置云函数。以阿里云函数计算为例,你可以创建一个新的云函数,并在其中编写以下代码:

// 云函数入口文件 index.js
const axios = require('axios');

exports.main = async (event, context) => {
  const url = event.url; // 从事件对象中获取目标 URL

  try {
    const response = await axios.get(url, {
      withCredentials: true, // 尝试发送带有凭据的请求
    });

    // 注意:由于安全限制,跨域请求通常无法直接获取第三方网站的 cookie
    // 这里假设服务器响应头中包含了 Set-Cookie,但实际情况可能并非如此
    const cookies = response.headers['set-cookie'] || [];
    return {
      statusCode: 200,
      cookies,
    };
  } catch (error) {
    return {
      statusCode: 500,
      message: error.message,
    };
  }
};

步骤 2: 调用云函数

在 uni-app 客户端代码中,你可以使用 uni-cloud API 来调用这个云函数:

uniCloud.callFunction({
  name: 'getCookies', // 云函数名称
  data: {
    url: 'https://example.com', // 目标网站 URL
  },
  success: (res) => {
    if (res.result.statusCode === 200) {
      console.log('Cookies:', res.result.cookies);
    } else {
      console.error('Error:', res.result.message);
    }
  },
  fail: (err) => {
    console.error('Call function failed:', err);
  },
});

注意事项

  1. 跨域问题:由于浏览器的同源策略,直接通过客户端获取第三方网站的 cookie 通常是不可能的。云函数作为服务器端代码,不受此限制,但目标网站可能设置了 SameSite 属性或其他安全策略来防止跨站请求伪造。

  2. 隐私和法律问题:获取和使用第三方网站的 cookie 可能涉及隐私和法律问题。确保你有合法权限访问和使用这些 cookie。

  3. 云函数配置:确保你的云函数具有访问外部网络的权限,并且正确配置了相关环境变量和依赖。

回到顶部