微信登录 - 插件使用说明 功能增强

skiy 7月前 6358


参考官网的 QQ 登录功能弄了一个微信登录的。

本插件为微信公众号(服务号)功能,且必须是已认证的,并非是“微信开放平台”,必须开启伪静态规则(https://bbs.xiuno.com/thread-2.htm)。


站长安装:

使用教程如下:

1. 登录微信公众平台;

2. 左下角 “开发 => 基本配置” 处获取 “开发者ID(AppID)” 和 “开发者密码(AppSecret)

3. “公众号设置 => 功能设置” 配置 “网页授权域名”为您的BBS的域名。

4. 安装插件后,进入后台,点击插件的“设置” 配置微信的 “开发者ID(AppID)” 和 “开发者密码(AppSecret)”,以及“二维码有效时间”;



用户使用:

微信内打开网站

1. 微信中未登录帐号的,则会创建一个新用户并直接登录;

2. 如果已注册用户,并且登录,可在“个人中心” 页 “申请绑定微信”。


 微信扫码登录网站(微信及网站会同时登录此用户)

1. 微信中未登录帐号的,则会创建一个新用户并直接登录;

2. 帐号未绑定微信的,可在PC端在“个人中心” 页 “申请绑定微信”,会弹出二维码,使用微信扫描绑定。


注意: 

绑定微信后不可解除绑定。(因为如果是直接用微信登录创建的新用户,密码及邮箱无法修改)。

卸载插件时,会删除微信与用户UID绑定的表

如果有用户是直接使用微信登录(新建用户),则会导致该用户无法再正常登录切记!!!


更新日志

-----------------------------------------

v1.2.1 

1. 增加微信扫码绑定帐号的功能

2. 优化了一下代码及整理了一下逻辑


-----------------------------------------

1. 二维码扫码登录;(v1.1.0 版本已实现)

2. 微信解绑功能;(此功能涉及到user表,流程有点疑虑,欢迎大家提意见

3. 二维码扫码绑定;(此功能在v1.2.0中已实现,目前还在调整一些细节及优化一下代码)


插件不收费

GitHub 开源地址https://github.com/skiy/xiuno-plugins/tree/feature/skiy_wx_login

------------------------------------------------------------------------------------------------

1. 微信扫码绑定时,有没有必要像扫码登录功能一样添加定时器检测绑定状态? 

- 已增加扫码定时检测绑定的功能。但发现安卓下扫码会触发多次绑定的。(苹果手机没问题,红米3S 会调用多次。。。)


2. 解绑功能,若是首次绑定是以微信登录直接创建用户的,必须要让用户更新密码和修改邮箱的,否则会导致该用户解绑微信后无法再正常登录。修改邮箱时,担心用户随便填邮箱,所以在考虑要不要添加发送验证到邮箱(发送邮件功能比较麻烦,有些站点可能还不配置smtp功能)。

 - 另一种情况就是,若是为微信直接登录(并非绑定已有帐号方式),注册新帐号时让对方输入邮箱及密码。增加此步骤会暂时阻止了用户微信登录的进程。

希望大家提一下意见


------------------------------------------------------------------------------------------------

有个问题跟大家提一下:

之前发现安装插件后,因为 jquery 放在 footer 里面,大家写 js 必须放在 jq 后,导致都将插件一些 js 都放在了 footer_js_after.htm 这个全局文件里。比如我写的这个登录插件,只有在个人中心页及登录页面需要用到而已,但如果安装上之后,刚会在几乎所有页面都会加载。虽然不影响正常运行,但是还是涉及到资源加载的问题~毕竟有些 CSS 和 js 插件挺大的~所以我在需要的地方添加了一些判断。如:



------------------------------------------------------------------------------------------------

Xiuno3BBS 升 Xiuno4BBS 工具: http://bbs.xiuno.com/thread-21133.htm 

(后期有空添加 Discuz!X 升 XiunoBBS 的功能)

最后于 2月前 被skiy编辑 ,原因:
最新回复 (83)
  • 倚楼观天象 7月前
    引用 2
    免费的么?
  • skiy 7月前
    引用 3
    倚楼观天象 免费的么?
    不收。收了要搞售后,没时间接待上帝。也赚不了多少钱,还不如淘宝接个  API  接口的功能。
    不做集合的。只做微信的,为了自用而已,正好拿来练手,第一个插件。。。
  • tenyet1 7月前
    引用 4
    在哪下载?
  • skiy 7月前
    引用 5
    tenyet1 在哪下载?
    正在等待审核
  • tenyet1 7月前
    引用 6
    skiy 正在等待审核
    期待哦
  • sunjix5852 7月前
    引用 7
    nice
  • rtmart99 7月前
    引用 8
    干的漂亮!
  • axiuno 7月前
    引用 9
    nice
  • 、把握现在 7月前
    引用 10
    非常感谢
  • skiy 7月前
    引用 11
    、把握现在 非常感谢
    已经通过审核了。欢迎大家提建议和意见~~~
  • tenyet1 7月前
    引用 12
    skiy 已经通过审核了。欢迎大家提建议和意见~~~
    申请微信登录有要求么,必须是公司么?
  • skiy 7月前
    引用 13
    tenyet1 申请微信登录有要求么,必须是公司么?
    个体户也行吧。反正通过微信公众号认证了就行。
  • tenyet1 7月前
    引用 14
    skiy 个体户也行吧。反正通过微信公众号认证了就行。
    个人公众号也可以么?
  • skiy 7月前
    引用 15
    tenyet1 个人公众号也可以么?
    个人公众号不能认证吧?你看微信公众平台接口权限的说明。
  • tenyet1 7月前
    引用 16
    哦哦
  • tenyet1 7月前
    引用 17
    skiy 个人公众号不能认证吧?你看微信公众平台接口权限的说明。
    这相当于废了,好多人注册不了认证的公众号啊
  • 四季歌 7月前
    引用 18
    域名没有备案使用不了吧?
  • skiy 7月前
    引用 19
    已实现扫码登录功能。
  • Cosmo 7月前
    引用 20
    这个必须顶。
  • skiy 7月前
    引用 21

    v1.2.0  增加微信扫码绑定的功能。目前还在优化代码。已将一些疑虑放在主帖内了。欢迎大家提意见。

    最后于 7月前 被skiy编辑 ,原因:
  • dissss 7月前
    引用 22
    免费只会助长部分站长的气焰,强烈要求收费。
  • dissss 7月前
    引用 23
    强烈要求收费,不要便宜白眼狼了。
  • skiy 7月前
    引用 24
    v1.2.1  微信扫码绑定功能已完成。顺便优化了一下代码。
  • tenyet1 7月前
    引用 25

    The requested URL /wx_login-bind.htm was not found on this server.


    这是咋回事

  • skiy 7月前
    引用 26
    tenyet1 The requested URL /wx_login-bind.htm was not found on this server.这是咋回事
    插件资源不完整,页面缺失。我已经上传v1.2.1上来了,待审核~  亦或  可以到我开源的地址下载:https://github.com/skiy/xiuno-plugins/releases/tag/v1.2.1
  • tenyet1 7月前
    引用 27
    skiy 插件资源不完整,页面缺失。我已经上传v1.2.1上来了,待审核~ 亦或 可以到我开源的地址下载:https://github.com/skiy/xiuno-plugins/releases/tag/v ...
    真的非常感谢
  • tenyet1 7月前
    引用 28
    tenyet1 真的非常感谢
    微信号没认证也会出现同样问题么?
  • tenyet1 7月前
    引用 29
    skiy 插件资源不完整,页面缺失。我已经上传v1.2.1上来了,待审核~ 亦或 可以到我开源的地址下载:https://github.com/skiy/xiuno-plugins/releases/tag/v ...
    微信号没认证也会出现同样问题不?
  • skiy 7月前
    引用 30
    tenyet1 微信号没认证也会出现同样问题不?
    微信没认证压根用不了这插件。这个不是我能解决的,是微信官方不提供这个  API。
  • tenyet1 7月前
    引用 31
    skiy 微信没认证压根用不了这插件。这个不是我能解决的,是微信官方不提供这个 API。
    难怪呢,你知道在哪可以搞认证的微信公众号不
  • skiy 7月前
    引用 32
    tenyet1 难怪呢,你知道在哪可以搞认证的微信公众号不
    某宝可以吧。你可以自己弄个个体工商户,再弄微信认证就行了。不过我是觉得没必要为了这个功能搞个号吧。
    你可以考虑下小程序扫码登录。我打算构思一下小程序扫码登录的功能。
  • tenyet1 7月前
    引用 33
    skiy 某宝可以吧。你可以自己弄个个体工商户,再弄微信认证就行了。不过我是觉得没必要为了这个功能搞个号吧。 你可以考虑下小程序扫码登录。我打算构思一下小程序扫码登录的功能。
    好吧,谢谢咯?
  • Cosmo 7月前
    引用 34
    感谢楼主分享。。。
  • 引用 35
    在用户登录页面跳不出二维码会是什么问题?已设置:2.  左下角  “开发  =>  基本配置”  处获取  “开发者ID(AppID)”  和  “开发者密码(AppSecret)”
    3.  “公众号设置  =>  功能设置”  配置  “网页授权域名”为您的BBS的域名。
  • skiy 7月前
    引用 36
    老妖_1523156445 在用户登录页面跳不出二维码会是什么问题?已设置:2. 左下角 “开发 => 基本配置” 处获取 “开发者ID(AppID)” 和 “开发者密码(AppSecret)” 3. “公众号设置 =& ...
    给一下网站地址?我来帮你看看。
  • @skiy  认证的微信公众平台到期后,不续签的话,这个功能会不会受影响,被锁定不能使用微信登录功能?
  • skiy 7月前
    引用 38
    命理风水咨询 @skiy 认证的微信公众平台到期后,不续签的话,这个功能会不会受影响,被锁定不能使用微信登录功能?
    任何网站都会有这个问题。所以可以自己添加个修改帐号、邮箱及密码的功能。
  • skiy 任何网站都会有这个问题。所以可以自己添加个修改帐号、邮箱及密码的功能。
    请问,这个是自己编写代码,还是绑定后可以自行修改?
  • skiy 7月前
    引用 40
    命理风水咨询 请问,这个是自己编写代码,还是绑定后可以自行修改?
    这功能得用别的插件了。毕竟修改邮箱这个功能官方主程序没有开放的。
    我考虑下,绑定帐号(新建方式的)要不要将密码展示出来给用户
  • 嗯,感谢您的辛苦!如果必须和认证的公众号联系到一起,插件对后续的推广还是会受制比较多
  • skiy 7月前
    引用 42
    命理风水咨询 嗯,感谢您的辛苦!如果必须和认证的公众号联系到一起,插件对后续的推广还是会受制比较多
    这个也是没办法的事情,而且也是现在通行的做法。
    比如QQ的,直接使用QQ注册,不能绑定现有帐号的,要不审核不通过的。
  • 注册时候的“微信登录”和“申请绑定微信”为什么没有连接地址呢?已经按照上面的提升设置好了,点击这里的时候仍然这两个位置没有连接页面出现
  • skiy 7月前
    引用 45
    命理风水咨询 注册时候的“微信登录”和“申请绑定微信”为什么没有连接地址呢?已经按照上面的提升设置好了,点击这里的时候仍然这两个位置没有连接页面出现
    什么意思?你看下官网的这个功能。
    当你已登录,那么就是绑定当前帐号的情况。
    如果你未登录,就会新建一个帐号。
    如果是非微信端打开的,那么  微信登录和个人中心那个绑定微信的,都是会跳出二维码。
    如果是在微信端打开,那么就是直接登录或直接绑定的了。
  • 在注册时点微信登录的时候,上面就没有连接出现,已经按照说明顺序做了,但是,点“微信登录”的时候还是点的空页,没有任何连接或窗口出现

  • skiy 6月前
    引用 47
    命理风水咨询 在注册时点微信登录的时候,上面就没有连接出现,已经按照说明顺序做了,但是,点“微信登录”的时候还是点的空页,没有任何连接或窗口出现
    方便提供一下链接吗?
    你去更新一下缓存看看。

  • http://bbs.zhouyixt.com

    这个就是我刚刚搭建好的论坛

  • skiy 6月前
    引用 49
    命理风水咨询 http://bbs.zhouyixt.com这个就是我刚刚搭建好的论坛
    你配置一下伪静态规则。https://bbs.xiuno.com/thread-2.htm
  • 好的,谢谢
  • HeartBleed 6月前
    引用 51

    授权登录后 头像还是默认头像?不是直接调用微信的?

  • skiy 6月前
    引用 52
        HeartBleed 授权登录后 头像还是默认头像?不是直接调用微信的?

    这个不拿微信头像的,太耗费时间了,且还要写入数据。里面有个代码是写入头像的,修改一下就好:

    //创建新用户   

    //517行     

    $user = wx_login_create_user($wxuser['nickname'], $wxuser['headimgurl'], $openid);


    最后于 6月前 被skiy编辑 ,原因:
  • 6月前
    引用 53
    做好了后没反应
  • skiy 6月前
    引用 54
    做好了后没反应
    规则有没写
  • 李勇CH 6月前
    引用 55
    skiy     HeartBleed 授权登录后 头像还是默认头像?不是直接调用微信的?这个不拿微信头像的,太耗费时间了,且还要 ...
    我想获取微信头像,请问具体怎么加入代码?我看517行是接受地理位置
    上传的附件:
  • skiy 6月前
    引用 56
    李勇CH 我想获取微信头像,请问具体怎么加入代码?我看517行是接受地理位置


    你没找对文件吧.是在:

    大概在这里:

    https://github.com/skiy/xiuno-plugins/blob/master/skiy_wx_login/route/wx_login.php#L518

  • 心源 6月前
    引用 57
    楼主您好,请教一下:
    因为公众号域名的问题,用这两个插件(https://github.com/HADB/GetWeixinCode)(https://github.com/lionskys/codetoany)的话,应该修改哪些地方?自己是在是找不到啊。。。
    非常感谢!
  • skiy 6月前
    引用 58
    心源 楼主您好,请教一下: 因为公众号域名的问题,用这两个插件(https://github.com/HADB/GetWeixinCode)(https://github.com/lionskys/cod ...
    这个其实就是加了中转而已。不知道你是想如何呢?
    其实就是授权页拿到 openid 之类的,再转跳一次就好了。
  • 张谞 6月前
    引用 59
    hi  楼主好。已经配置了相关的参数。而且也是伪静态成功,企业公众号。但是怎登录页点击微信登录,没有任何跳出窗口和界面。
    http://www.515148.com/wenda/user-login.htm
    帮忙看看
    谢谢了
  • 张谞 6月前
    引用 60
    现在的问题是,用微信访问,点击后直接登录,用电脑和手机浏览器点击后没有任何弹出和动作
  • skiy 6月前
    引用 61
    张谞 现在的问题是,用微信访问,点击后直接登录,用电脑和手机浏览器点击后没有任何弹出和动作
    没有看到你有微信登录入口.
  • 心源 6月前
    引用 62
    skiy 这个其实就是加了中转而已。不知道你是想如何呢? 其实就是授权页拿到 openid 之类的,再转跳一次就好了。
    是这样的,我认证的公众号用在另一个国内域名下了,论坛因为beian的原因放在海外服务器上,现在想实现论坛的微信登录功能。
    您说的原理我明白,只是不懂代码,不知道具体要怎么去修改插件文件中的哪些地方……
  • Lumia 5月前
    引用 63
    skiy     HeartBleed 授权登录后 头像还是默认头像?不是直接调用微信的?这个不拿微信头像的,太耗费时间了,且还要 ...

    把wx_login.func.php文件中的:

    // 头像不重要,忽略错误。
    if (!empty($avatar_url_2) && (filter_var($avatar_url_2, FILTER_VALIDATE_URL))) {
       $filename = "{$uid}.png";
       $dir = substr(sprintf("%09d", $uid), 0, 3) . '/';
       $path = $conf['upload_path'] . 'avatar/' . $dir;
       !is_dir($path) AND mkdir($path, 0777, TRUE);
       $data = file_get_contents($avatar_url_2);         //修改此处
       file_put_contents($path . $filename, $data);
       user_update($uid, array('avatar' => $time));
    }

    改为

    // 头像不重要,忽略错误。
    if (!empty($avatar_url_2) && (filter_var($avatar_url_2, FILTER_VALIDATE_URL))) {
       $filename = "{$uid}.png";
       $dir = substr(sprintf("%09d", $uid), 0, 3) . '/';
       $path = $conf['upload_path'] . 'avatar/' . $dir;
       !is_dir($path) AND mkdir($path, 0777, TRUE);
       $data = curl_get_contents($avatar_url_2);        //修改此处
       file_put_contents($path . $filename, $data);
       user_update($uid, array('avatar' => $time));
    }


    并在文件最后添加一下方法:

    function curl_get_contents($url,$timeout=1) {
       $curlHandle = curl_init();
       curl_setopt( $curlHandle , CURLOPT_URL, $url );
       curl_setopt( $curlHandle , CURLOPT_RETURNTRANSFER, 1 );
       curl_setopt( $curlHandle , CURLOPT_TIMEOUT, $timeout );
       $result = curl_exec( $curlHandle );
       curl_close( $curlHandle );
       return $result;
    }


    这样获取头像时速度可以快不少

  • 上善若水 5月前
    引用 64
    如果大家使用的是二级目录做坛子,可能会遇到弹不出微信登录二维码,这时要把plugin\skiy_wx_login\hook\footer_js_after.htm里面两个/plugin改成plugin,也就是将plugin前面的/去掉,就能弹出微信登录二维码了。
  • momofa 5月前
    引用 65
    解绑流程:解绑时,判定是否为微信自动创建的账户;不是的就直接解绑成功。如果是微信自动创建的账户,一个弹窗,该账户将被冻结无法使用,是否确定解绑?用户点确定后解绑。

    我认为不要想得太复杂,告知用户即可。
  • skiy 5月前
    引用 66
    momofa 解绑流程:解绑时,判定是否为微信自动创建的账户;不是的就直接解绑成功。如果是微信自动创建的账户,一个弹窗,该账户将被冻结无法使用,是否确定解绑?用户点确定后解绑。 我认为不要想得太复杂,告知用户 ...
    但有些用户是希望能解绑,也不冻结用户啊...

    用户是千千万万的.
  • momofa 5月前
    引用 67
    skiy 但有些用户是希望能解绑,也不冻结用户啊... 用户是千千万万的.
    这类用户很少,可以让他联系管理员。后台处理。
    大部分用户解绑,是因为想要把微信绑到另一个账号上。
  • skiy 5月前
    引用 68
    momofa 这类用户很少,可以让他联系管理员。后台处理。 大部分用户解绑,是因为想要把微信绑到另一个账号上。
    有打算开发注册时手填用户信息的.类似现有那个oauth流程的.但可能考虑太复杂了,后面再说
  • momofa 5月前
    引用 69
    skiy 有打算开发注册时手填用户信息的.类似现有那个oauth流程的.但可能考虑太复杂了,后面再说
    在注册时就不要设置门槛了 解绑弄复杂的都可以 。比如解绑时重置用户名和密码。
  • 虚拟主机怎么办?伪静态?
  • Yuriy Zhang 2月前
    引用 71

    本插件为微信公众号功能,且必须是已认证

    你这个已认证是300元一年的认证费,还是注册时的验证?

    最后于 2月前 被Yuriy Zhang编辑 ,原因:
  • skiy 2月前
    引用 72
    Yuriy Zhang 本插件为微信公众号功能,且必须是已认证的你这个已认证是300元一年的认证费,还是注册时的验证?
    就是加黄V的公众号的意思。
  • Ylang 2月前
    引用 73

    微信登录后台报错  wx_login-scan-create_qrcode 这个 404 没有找到
  • skiy 2月前
    引用 74
    Ylang 微信登录后台报错 wx_login-scan-create_qrcode 这个 404 没有找到
    已经私了,要设置伪静态。
  • 一九八四 2月前
    引用 75
    skiy 已经私了,要设置伪静态。
    大佬
  • Ylang 2月前
    引用 76
    skiy 已经私了,要设置伪静态。
    昨天已经找到问题了
  • 一九八四 2月前
    引用 77
    经过大佬给看,插件不支持订阅号认证。
  • 上善若水 如果大家使用的是二级目录做坛子,可能会遇到弹不出微信登录二维码,这时要把plugin\skiy_wx_login\hook\footer_js_after.htm里面两个/plugin改成plugin ...
    改了还是没弹出来啊
  • Sam_1538123039 1月前
    引用 79
    A 鱼儿~科能办公家具厂 改了还是没弹出来啊
    哈哈哈
  • wanglei 1月前
    引用 80
    大神,我的怎么登陆不了,按照您的配置说明做的,帮忙看看wx.aijiu.com
  • skiy 28天前
    引用 81
    伪静态有写吗?
  • 马强 14天前
    引用 82
    好啊号啊
  • 张钰 7天前
    引用 83
    我登录那里也是弹不出来二维码,但是绑定那里就可以弹出。看了源码,好像是绑定是ajax get到 wx_login-bind-create_qrcode.htm, 而登录是ajax get到wx_login-scan-create_qrcode.htm。问题出现在wx_login-scan-create_qrcode.htm,不知为何总是返回
    {
        "code": "-1",
        "message": "当前站点设置状态:会员可读写"
    }
    绑定那里就正常返回
    {
        "code": "0",
        "message": {
            "errmsg": "获取二维码成功",
            "qrcode": "c5xhrw4ffdv4nb"
        }
    }
  • 张钰 7天前
    引用 84
    发现把权限那里改成 所有人只读,就可以生成二维码了。请作者大哥可否改一下程序?毕竟社区是希望只有会员可读写,避免隐私泄露之类的。
返回
发新帖