前端 微信授权流程 1 前端触发 /api/comm/index/init 检查用户登录 未登录状态, 会创建cookie 创建session,包含cookie.sid 生成本地授权链接,包含授权成功的需要跳转的入参callback_url , OAUTH_URL . '/wechat/oauth/index' 同时会返回cookie前缀相关内容 ck_prefix ck_path ck_domain 2 前端触发 步骤1生成的/wechat/oauth/index 接口链接,里面包含了授权回调url 生成微信授权回调链接, OAUTH_URL . '/wechat.oauth/callback/ 保存callbackURL 到 session表extends字段 通过访问微信三方授权平台api,通过redirect=字段传入授权回调链接 自动跳转到三方平台url,然后触发微信授权 微信授权成功后,通过之前携带的url返回到本机 OAUTH_URL . '/wechat.oauth/callback 3 微信授权成后触发 根据当前cookie,获取session表存储的callback_url 根据微信授权返回的用户信息,覆盖extends字段内容为授权信息 更新open_uid表 设置前端用户为登录状态 跳转到callback_url 问题检查清单 0 检查全部链接是否都是https或者全部为http 包含请求页面 php后端config/api/app.php的域名和授权url 特别注意,用授权之前,cookie是无法保存的,导致session也无法获取,传参需要通过在/api/wechat/oauth/index修改 /api/wechat.oauth/callback回调url增加参数实现 1 检查init返回信息 入口例如 :https://XXX.iwxapi.com/api/comm/index/init/source/h5/__version/1.0?callback_url=https%3A%2F%2F202412wh-m.iwxapi.com%2F%23%2Fabout%2Findex callback_url 必须需要urlencode 查看返回值 oauth_url 字段是否正常 2 检查日志,确认一下接口cookie是否一致 /api/comm/index/init /api/wechat/oauth/index /api/wechat.oauth/callback 如果不一致可能的问题 前端代码 var $init = function (callback, options = ()) { //所有请求是否都在这个里面 } 3 检查user_sessions表是否成功生成数据 extends字段里面 state、callback_url 数据是否完整 {"wap":0,"state":"21bbd0649f59de696dd58e9f82c2a72d","act_id":"0","callback_url":"https:\/\/202403mobil-h5-dev.iwxh5.cn\/9e61ae55.html#\/"}