授权地址: https://wechat.mklaus.cn
效果对比,开发者工具成功
真机一直请求授权
页面就一个html文件,没有其他。代码如下
```html
<html>
<head><script src="https://res.wx.qq.com/open/js/cloudbase/1.1.0/cloud.js"></script></head>
<body><p>hello world</p></body>
<script>
window.login = async function() {
const checkLoginOptions = {
provider: 'OfficialAccount',
appid: 'wx1801955d58387cb4',
}
var urlSearch = new URLSearchParams(location.search)
var accessToken = urlSearch.get('access_token')
var refreshToken = urlSearch.get('refresh_token')
if (urlSearch.get('oauthredirect') === '1') {
checkLoginOptions.accessToken = accessToken
checkLoginOptions.refreshToken = refreshToken
}
const result = await cloud.checkLogin(checkLoginOptions)
if (result.errCode === 0 && result.loggedIn) {
alert('login success')
} else {
try {
cloud.startLogin({
provider: 'OfficialAccount',
appid: 'wx1801955d58387cb4',
scope: 'snsapi_base',
redirectUri: 'https://wechat.mklaus.cn/'
})
} catch (e) {
console.error(`startLogin fail: ${e}`)
}
}
}
window.login()
</script>
</html>
```
你好,苹果 iOS 14 以上受系统限制影响,公众号授权登录需要使用云开发静态托管域名或反向代理形式,将微信授权页面代理至第一方(参考 在公众号中使用云开发 | 微信开放文档 (qq.com) 中「注意」部分)。
从云开发 Web SDK 1.2.0 开始,支持第一方授权登录
<script src="https://res.wx.qq.com/open/js/cloudbase/1.2.0/cloud.js"></script>
如何使用第一方 Cookie 登录态:
参考服务器转发配置如下:
使用 Nginx 转发
location /__wx__/ { proxy_pass https://servicewechat.com/wxa-qbase/; }
使用 Express 转发
var proxy = require('express-http-proxy'); var app = require('express')(); app.use('/__wx__/', proxy('https://servicewechat.com/wxa-qbase/'));
试了一台iOS 12也出现同样的问题,不单只iOS 14有,估计iOS都有问题
app.use('/__wx__/', proxy('https://servicewechat.com/wxa-qbase/')); c对我来说没用,nginx反向代理可以,不过又有其它404: "POST /__wx__/check_login HTTP/1.1" 404 Not Found
@Shannon 怎么感觉无解呢这个问题,是不是云托管都没什么人用的,开发这么难,我10几年开发,难住了
自有网站测试,问题还是依旧啊,是不是放弃了