微信app内置浏览器不支持跨域名获取cookies (缓存)

本文讲述了在进行微信公众号支付调试过程中遇到的问题:微信内置浏览器无法获取跨域cookies。经过排查发现,原因是微信内置浏览器不支持跨域获取缓存,只有当地址完全一致时才能成功获取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在做微信的公众号支付时,在调试时发现,微信app内置浏览器获取不到cookies, 在浏览上获取是问题,

花了大半天的时间去查找问题,发现是微信app内置的浏览器上不支持跨域名获取缓存,如果要获取地址必须是要一致才可

### 微信公众号登录获取 OpenID 实现用户身份验证 #### 使用 Flask 和 OAuth2.0 授权流程 为了实现微信公众号的登录并获取用户的 OpenID,可以通过以下方式完成: 创建一个基于 Flask 的应用来处理微信 OAuth2.0 流程。当用户点击“使用微信登录”的按钮时,会被重定向至微信官方提供的授权页面,在那里他们可以选择同意或拒绝权限授予。 一旦获得许可,微信服务器将会把用户重定向回指定的应用回调地址,并附带 code 参数用于换取 access_token 及最终得到 open_id[^1]。 ```python from flask import Flask, redirect, request, url_for import requests app = Flask(__name__) @app.route('/login') def login(): # 构造微信OAuth2.0授权链接 wechat_auth_url = ( "https://open.weixin.qq.com/connect/oauth2/authorize?" f"appid=YOUR_APP_ID&" "redirect_uri=http%3A//yourdomain.com/callback&" "response_type=code&scope=snsapi_base&state=STATE#wechat_redirect" ) return redirect(wechat_auth_url) @app.route('/callback') def callback(): code = request.args.get('code') token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token' params = { 'appid': 'YOUR_APP_ID', 'secret': 'YOUR_APP_SECRET', 'code': code, 'grant_type': 'authorization_code' } response = requests.get(token_url, params=params).json() openid = response['openid'] # 将OpenID存储于session或其他持久化机制中以便后续操作 session['openid'] = openid return f'User {openid} has logged in successfully.' if __name__ == '__main__': app.run(debug=True) ``` 上述代码片段展示了如何构建一个简单的Flask应用程序来进行微信OAuth2.0授权流程,从用户授权开始直到成功获取其OpenID为止。 对于安全性和性能考虑,建议仅在必要时刻请求OpenID,并将其缓存起来减少重复查询次数;例如可利用HTTP Cookies 或者 Session 来保持已验证状态下的用户标识符[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值