一. laravels (5.4)使用 laravel-wechat (4.13),出现无法登陆的情况,显示没有code 错误,解决办法

前提:已经在laravels.php 的 cleaners 中打开了 sessioncleaner 和 authcleaner。

  1. 复制 \vendor\overtrue\laravel-wechat\src\middleware\oauthauthenticate.php 到项目中\app\http\middleware 中
  2. 修改代码
$officialaccount = app(\sprintf('wechat.official_account.%s', $account)); 
//解决认证没有code的问题,可以参考官方的 https://github.com/hhxsv5/laravel-s/blob/master/knownissues-cn.md 使用wechat包的问题
$officialaccount['request'] = $request;     
  1. 修改\app\http\kernel.php 使用新的中间件,访问可以登陆。

二. 新的问题

现在可以登陆了,但是会出现退出之后再次登陆,会提示:code been used。看日志,每次登陆使用的是同一个code, 解决方法如下:

  1. 修改config/laravels.php在register_providers 中增加 overtrue\laravelwechat\serviceprovider::class

  2. 重启laravels 可以再次登陆。