discuz社区与java web的钉钉手机版整合(二)
来源:互联网 发布:js 保留字 viod 编辑:程序博客网 时间:2024/05/02 04:46
上一篇讲到如何绕开discuz的登录验证,使得在url传一个username的账号就可以自动登录。这篇主要讲的是钉钉的免登陆,由于官方网都有所以,一开始的在钉钉增加添加微应用这个就省略了。
这里有一个前提:即本来的系统(我公司的是erp系统)已经与钉钉整合了,即钉钉已经可以获取erp系统当前的登录账号。至于怎样弄,先忽略。
现在假设登录钉钉后就能通过钉钉接口获取登录账号,discuz属于第三个整合的系统。
总步骤:
1.在钉钉开通微应用(参考官方网站)
2.获取原来erp系统(javaweb系统)中coreID和corpSecret的值();注意:不是discuz的值
3.下载js-api免登陆的例子程序(钉钉官方的开发文档中有链接),解压,放在主机网站跟目录里面。
4.打开env.php,添加coreid和secret的值,这个值在前面可以获取,然后通过url访问,会发现可以运行:
define("CORPID", "dingb1694cc632dd706c");define("SECRET", "g3rf9IV26TEH7VbkrSnhM04ZM-4azaFTI7FgKL2Obl2sC7iyBJPWi4aLUp9KDVs3");
<span style="color:#ff0000;">注意:这个是需要php5.4才支持,5.3也能支持,前提是熟悉php版本特性,会根据版本的不同修改一些函数。</span>5.打开jsapi.php中的文件,发现引入了demo.js,免登陆需要用到这个js的 dd.runtime.permission.requestAuthCode()函数。修改函数如下:
dd.runtime.permission.requestAuthCode({ corpId: _config.corpId, onSuccess: function (info) { //logger.i('authcode: ' + info.code);//alert("11"+ROOT_URL);window.location=ROOT_URL+"/userinfo.php?code=" + info.code; /* $.ajax({ url: '/userinfo.php?code=' + info.code, type: 'GET', success: function (data, status, xhr) { alert("3"); var info = JSON.parse(JSON.parse(data)); if (info.errcode === 0) { logger.i('user id: ' + info.userid); } else { logger.e('auth error: ' + data); } }, error: function (xhr, errorType, error) { logger.e(errorType + ', ' + error); } });*/ }, onFail: function (err) { //logger.e('fail: ' + JSON.stringify(err)); } });});
6. 然后打开userinfo.php,会发现打印出json格式$userinfo.(如果出错,把php5.4高版本的json_encode(long,long)改成json_encode(onject)),这里回忆一下php的json处理函数json_encode($userInfo);这是把array对象en成json对象,json_decode()是把json对象转换成java对象。把$user = json_decode($userInfo,true);,然后用数组形式获取userid的值即可。
7.构建访问discuz论坛的免登陆路径,然后重定向:
$url = "http://192.168.203.199:8001/forum/member.php?mod=logging&action=login&app=ding&ding_username=".$user['userid']; //echo "<script type=\"text/javascript\">alert(\"".$url."\") </script>";echo "<script type=\"text/javascript\">window.location=\"".$url."\"</script>";8.注意可以访问但是不能登录的原因:可能是因为论坛本身还没有该erp系统或者钉钉提供的userid账号。
0 0
- discuz社区与java web的钉钉手机版整合(二)
- discuz社区与java web的钉钉手机版整合(二)
- discuz社区与java web的钉钉手机版整合(一)
- discuz社区与java web的钉钉手机版整合(一)
- java web与discuz社区整合(二)
- 钉钉的API
- 钉钉的功能介绍
- 钉钉开发系列(七)媒体文件的上传与下载
- 通过git的webhook实现通过钉钉进行代码及时review(Java版本)
- 钉钉(工作协同)应用的前端源码
- 钉钉开发系列(二)结构封装
- Android仿照钉钉的人名头像
- 耳钉与人生
- ZABBIX 钉钉报警 插件(python)
- 钉钉开发笔记(1)
- 钉钉环境下H5开发微应用遇到的问题和BUG(持续更新)
- 钉钉API接口开发(二) 部门 /department
- 钉钉打卡神器
- 为什么主引导记录的内存地址是0x7C00?
- HDU 1700 复数应用
- GDB工具使用教程_基本调试指令
- 初学者git的使用教程
- ARM8位位图--第二操作数的立即数表示
- discuz社区与java web的钉钉手机版整合(二)
- Java Json Html ajax数据传递
- squid代理服务的配置
- Linux系统升级gcc/g++
- 我的Android进阶之旅------>Android中如何高效率的进行简繁体转换
- 为何要将多个图标放在一张背景图里?
- IOS开发之绝对布局和相对布局(屏幕适配)
- codeforces 584B Kolya and Tanya
- ios之UITabBarItem显示真实自定义的图片而非颜色填充