【微信】微信开发(3)不要掉进Cookie的坑!

本文介绍了解决微信网页鉴权过程中UID无法通过cookie存储的问题。通过在页面间过渡来实现cookie的设置,确保了UID能够正确地用于后续的会话管理。

在开发中我遇到了这样一个问题:

线上环境通过多台主机多实例部署,所以要用redis存储统一的session信息,然后通过一个uid为key来区分,当用户通过微信网页鉴权接口(整个接口的交互我写在了action里面)时会给用户分配一个uid然后以此uid为key存储对应session信息。

另外我的页面是通过angularjs实现的,所有的请求都是异步的,本来项目大部分功能已经实现,所以怎么传递uid成了问题,以往的的解决办法都是通过存cookie来实现的,所以我页面实现微信网页鉴权的页面将要使用的uid存到了cookie中,但是当使用时却取不到。

这里出现了一个非常蠢的错误,简单讲就是将微信公众号至主页面理解成了一个浏览器,这样没有经过浏览器就存cookie是无法实现的,如图:

错误方式

正确方式:
正确方式

用一个页面进行过渡,通过这个页面存cookie。

在这里插入图片描述

太好了!你已经登录百度网盘,接下来我们 **立即获取两个关键参数:`BDUSS` 和 `access_token`**。 我会一步一步带你操作,像教朋友一样详细说明。 --- ## 🔍 第一步:获取 `BDUSS`(从浏览器 Cookie) ### ✅ 操作步骤如下: #### 1. 确保你在 [https://pan.baidu.com](https://pan.baidu.com) 这个页面 - 页面顶部应该显示你的用户名或头像 - 已经能看到“我的资源”、“传输列表”等 #### 2. 按下键盘上的 `F12` 键 > 这会打开“开发者工具”(所有现代浏览器都支持) 📌 小提示: - 如果 F12 没反应,请尝试 `Fn + F12` - 或者右键网页任意空白处 → 选择【检查】/【审查元素】 #### 3. 点击顶部标签中的 【Application】(应用) > 如果是 Edge 或 Chrome 浏览器就有这个选项 ![示意] 应用(Application) > Storage > Cookies > https://pan.baidu.com #### 4. 在左侧找到并点击: ``` Cookies ➝ https://pan.baidu.com ``` #### 5. 在右边列表中找到名为 `BDUSS` 的那一行 - Name: `BDUSS` - Value: 后面是一串非常长的字符(可能带下划线、减号、字母数字) 👉 **右键这一行 → Copy Value**(复制值) ✅ 示例(不是真实值): ``` a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6A7B8C9D0E1F2G3H4I5J6K7L8M9N0O1P2Q3R4S5T6U7V8W9X0Y1Z2... ``` > 📌 把它粘贴到记事本里,标记为:`BDUSS = "你复制的内容"` --- ## 🔐 第二步:获取 `access_token`(授权令牌) 我们要访问一个特殊链接来获取它。 ### 1. 复制下面这个网址,在当前浏览器中**新开一个标签页**打开: ```text https://openapi.baidu.com/oauth/2.0/authorize?response_type=token&client_id=iYCeC9lKtxkjKds2bfEMq9rF&redirect_uri=https://www.baidu.com&scope=netdisk ``` > ⚠️ 必须使用 **已登录百度账号的浏览器** 打开! ### 2. 打开后会发生什么? 你会看到一个授权页面,类似: > “是否允许 ‘百度网盘第三方工具’ 访问你的网盘?” ✅ 点击【同意授权】或【允许】 ### 3. 跳转后查看地址栏 跳转后的网址应该是这样的: ```text https://www.baidu.com/#access_token=xxxxxx&expires_in=2592000&scope=basic,netdisk ``` 🔍 关键信息就在里面! 👉 请你复制 `access_token=` 和 `&expires_in` 之间的那一串字符 例如: ``` xxxxxx (这就是 access_token) ``` > 📌 把它也粘贴到记事本里,写成: > > ```python > ACCESS_TOKEN = "你复制的那一串" > ``` --- ## 🧾 第三步:填写进你的 Python 脚本 现在回到你之前保存的文件:`wechat_pan_helper.py` 用鼠标右键点击它 → 打开方式 → 记事本(或其他编辑器) 找到这几行: ```python # 百度网盘授权信息(需提前获取) BDUSS = "your_baidu_BDUSS" # 可从浏览器 Cookie 获取 ACCESS_TOKEN = "your_access_token" # 或使用 OAuth 授权获取 # 监听的微信群名(精确匹配) TARGET_GROUP = "资源分享群" ``` ### 修改为: ```python BDUSS = "你刚刚复制的BDUSS长字符串" ACCESS_TOKEN = "你刚刚复制的access_token" TARGET_GROUP = "你要监控的群名称" # 比如:"学习资料群" ``` 🎯 举个真实例子: ```python BDUSS = "a1B2c3D4e5F6g7H8i9J0k1L2m3N4o5P6q7R8s9T0u1V2w3X4y5Z6a7B8c9D0e1F2G3H4I5J6K7L8M9N0O1P2Q3R4S5T6U7V8W9X0Y1Z2" ACCESS_TOKEN = "z9Y8x7w6v5u4t3s2r1q0p9o8n7m6l5k4j3i2h1g0f9e8d7c6b5a4" TARGET_GROUP = "资源共享群" ``` 📌 注意事项: - 不要保留引号外的空格 - 不要漏掉开头和结尾的双引号 - 群名必须和微信里的完全一致(区分大小写和标点) --- ## ▶️ 第四步:运行脚本测试 ### 方法一:命令行运行(推荐,能看到错误) 1. 按 `Win + R` → 输入 `cmd` 回车 2. 切换到脚本所在目录,比如桌面: ```bash cd C:\Users\你的用户名\Desktop ``` ❓不知道用户名?看提示: - 输入 `echo %USERNAME%` 回车就能看到 - 比如输出是 `John`,那就写: ```bash cd C:\Users\John\Desktop ``` 3. 运行脚本: ```bash python wechat_pan_helper.py ``` ✅ 正常输出示例: ``` ✅ 开始监听微信群:资源共享群 📦 处理链接: https://pan.baidu.com/s/abc123 (提取码: 1234) 💡 正在解析分享页面... ✔️ 成功获取 2 个文件 📤 已转存到网盘 🔗 获取直链成功: file1.pdf: https://xxx.baidupcs.com/xxx file2.zip: https://xxx.baidupcs.com/xxx 💬 模拟发送到 [资源共享群]: ... ``` 🎉 恭喜!说明一切正常! --- ## ❓常见问题解答 | 问题 | 解决方法 | |------|----------| | `python 不是内部或外部命令` | 改用 `py wechat_pan_helper.py` | | 提示缺少 requests 模块 | 再运行一次 `pip install requests` | | 获取不到 BDUSS | 换 Google Chrome 浏览器试试 | | access_token 获取失败 | 检查是否在同一浏览器登录百度 | | 脚本闪退 | 用 CMD 运行,不要双击 | --- ## 🚀 下一步做什么? 你现在运行的是“模拟消息”。下一步我们可以: - 接入真实微信消息(通过 WeChatPYAPI) - 添加自动回复功能 - 把脚本打包成 .exe 让别人也能用 - 加个图形界面方便设置 只要你告诉我:“我想接入真实的微信群消息”,我就可以继续教你怎么做! --- ###
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值