|
这是一个创建于2018-10-16 20:39的主题,其中的信息可能已经有所发展或是发生改变。
官方提供的【微信登录】插件太鸡肋,是自动跳转到微社区的,并不是进入我们想进入的手机网站。我们的需求其实非常简单,就是要实现在任意一个手机触屏版页面点击一下登录按钮,然后就自动用微信账号登录,登录成功以后再跳转到之前的页面。
首先,跟大家强调的是:使用今天这个方法不管是订阅号还是服务号,不管是认证过的还是没有认证过的,甚至是没有微信公众号的,都可以实现微信一键登录!
打开文件./source/plugin/wechat/response.class.php
查找- $in_wechat = $_G['wechat']['setting']['wsq_wapdefault']
- ? true : strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false;
复制代码
更改为
后台-全局-手机版访问设置,开启手机版选 是 ,开启手机浏览器自动跳转选 是 ,现在从微信进入手机站不再跳转微社区了,但是并不能实现微信登陆。
根目录新建do.php文件,除高亮部分,其余与portal.php一致。内容如下:
- <?php
- define('APPTYPEID', 4);
- define('CURSCRIPT', 'wxlogin');
- require './source/class/class_core.php';
- $discuz = C::app();
- $cachelist = array('userapp', 'portalcategory', 'diytemplatenameportal');
- $discuz->cachelist = $cachelist;
- $discuz->init();
- require DISCUZ_ROOT.'./source/function/function_home.php';
- require DISCUZ_ROOT.'./source/function/function_portal.php';
- if(empty($_GET['mod']) || !in_array($_GET['mod'], array('list', 'view', 'comment', 'portalcp', 'topic', 'attachment', 'rss', 'block'))) $_GET['mod']
- = 'index';
- define('CURMODULE', $_GET['mod']);
- runhooks();
- $navtitle = str_replace('{bbname}', $_G['setting']['bbname'], $_G['setting']['seotitle']['portal']);
- $_G['disabledwidthauto']
- = 1;
- require_once libfile('do/'.$_GET['mod'], 'module');
- ?>
复制代码
在source/module文件夹下新建do文件夹,新建do_index.php文件,内容如下:
- <?php
- if(!defined('IN_DISCUZ')) {
- exit('Access Denied');
- }
- if ($_GET['op']='wxlogin')
- {
- include_once template('diy:do/wxlogin');
- }
- ?>
复制代码
在template/default/touch文件夹下新建do文件夹(这里是默认模板,如果你使用的是其他模板在对应模板的touch下同理),在do文件夹下新建wxlogin.htm,注意更换里面的网页地址和微社区ID,内容如下:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta charset="gb2312">
- <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
- <meta name="apple-mobile-web-app-capable" content="yes"/>
- <meta name="apple-mobile-web-app-status-bar-style" content="black"/>
- <meta content="telephone=no" name="format-detection"/>
- <title>$navtitle</title>
- </head>
- <body>
- <!--{if $_G[uid]}-->
- <script language="javascript">document.location = 'http://你的网站地址';</script>
- <!--{else}-->
- <!--{if $_GET['login']
- == 'yes'}-->
- <div id="nolog" style="width:100%; padding:100px 0; font-size:18px; text-align:center;">微信登录中,请稍后……</div>
- <iframe name="denglu" id="denglu" src="http://wsq.discuz.qq.com//?siteid=填写你的微社区ID号&c=index&a=index&mobile=2&login=yes" width="1" height="1" style="position:absolute; left:-1px;"></iframe>
- <script type="text/javascript">
- if (document.getElementById("denglu").attachEvent){
- document.getElementById("denglu").attachEvent("onload", function(){
- document.location = 'http://你的网站地址';
- });
- } else {
- document.getElementById("denglu").onload = function(){
- document.location = 'http://你的网站地址';
- };
- }
- document.body.appendChild(iframe);
- </script>
- <!--{else}-->
- <style>body{background:#eeeff3; margin:0; padding:0;}</style>
- <div style="width:100%; background:#4cb131; color:#fff; font-size:16px; text-align:center; line-height:24px;">
- <div style="padding:20px;"><img src="new/dun.jpg" width="30%" />该网页由{$_G['setting']['sitename']}开发,向其提供以下权限即可继续操作!</div>
- </div>
- <div style="width:100%; padding:20px 0; text-align:left; font-size:14px; color:#b3b4b6;">
- <div style="padding:0 15px;"><img src="new/gou.jpg" height="14" style="margin-bottom:-2px;" /> 获得你的公开信息(昵称、头像等)</div>
- </div>
- <div style="width:100%; padding:0 0 20px; text-align:center;">
- <div style="padding:10px;"><a href="do.php?op=wxlogin&login=yes" style="width:100%; display:block; height:50px; line-height:50px; font-size:20px; background:#03bd00; color:#fff; border-radius:5px;">确认登录</a></div>
- </div>
- <!--{/if}-->
- <!--{/if}-->
- </body>
- </html>
复制代码
打开手机模版(这里是默认模板,如果你使用的是其他模板在对应模板的touch下同理)template/default/touch/forum/discuz.htm文件,查找member.php,找到member.php?mod=logging&action=login这个登陆链接,改成do.php?op=wxlogin,这里有兴趣的朋友也可以用$_Get[]方式登陆后跳转到任意界面,这里默认为。到这里就全部完成设置了。
经过测试 会造成用户信息泄露,手机版微信登录会任意登录到别人的帐号,所以造成用户信息泄漏,谨慎使用。
|
|