起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 17047|回复: 13

[处理中3] 如何在b5做的网站中得到钉钉授权码。

[复制链接]

146

主题

589

帖子

1642

积分

金牌会员

Rank: 6Rank: 6

积分
1642
QQ
发表于 2019-12-26 11:58:24 | 显示全部楼层 |阅读模式
版本: X5.2.7 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
钉钉客户端内登陆b5做的应用网站,我需要得到钉钉的一个授权码,从而得到钉钉当前登录用户信息。
流程描述如下:
按照钉钉的格式构造了一个链接
https://oapi.dingtalk.com/connec ... &response_type=code&scope=snsapi_auth&redirect_uri=
http://xxx.xxx.xxx.xxx:8080/x5/m ... E&username=xsrb

可以看到后边红色部分是我们移动端直接登录的链接地址。
钉钉给与临时授权码的机制是,他会在跳转链接的时候把临时授权码写到链接里面,就是红字的链接里面,但是现在b5的直接登录机制,我是看不到直接登录那个环节的,通过直接登录链接我直接到的是门户链接。
我想问的时候,我有什么办法,能把钉钉反馈的那个登录链接得到,并写入一个变量里面,在哪里来做这个事情。


或者另外一个思路,在进入b5做的网站后,再访问另外一个链接,得到授权码


152

主题

413

帖子

2182

积分

金牌会员

Rank: 6Rank: 6

积分
2182
QQ
发表于 2019-12-27 09:31:20 | 显示全部楼层
我最近做了个小项目,应用集成到钉钉中,钉钉中直接打开应用,并单点登录到这个应用系统。实现的机制是:钉钉打开应用的接入页index.html时,index.html中的js调用钉钉的api取得code,代码如下:
<script>
        _config = {};
        _config.corpId = "dingabed4ac9486bb4e335c2f4657eb6378f";
        dd.ready(function() {
                dd.runtime.permission.requestAuthCode({
                        corpId : _config.corpId, // 企业id
                        onSuccess : function(info) {
                                code = info.code // 通过该免登授权码可以获取用户身份
                                getUser(code);
                        },
                        onFail : function(err) {

                        }
                });
        });

        function getUser(code) {
                $.ajax({
                        method : "post",
                        async : false,
                        contentType : "application/json; charset=utf-8",
                        dataType : "json",
                        url : "/ding/service/user",
                        data : JSON.stringify({
                                code : code
                        }),
                        success : function(response) {
                                //                        alert(JSON.stringify(response.data.user.name));
                                //                        window.location.replace(response.data.url);
                                if(response.data.user&&response.data.user.name){
                                        account = response.data.user.name;
                                        loginEisoo(account);
                                }else{
                                        return;
                                }
                        }
                });
        }
       
        function loginEisoo(account){
                var url = "http://192.168.252.8:9001/ding/service/eisoo/login";
                $.ajax({
                        method : "post",
                        async : false,
                        contentType : "application/json; charset=utf-8",
                        dataType : "json",
                        url : url,
                        data : JSON.stringify({
                                account : account
                        }),
                        success : function(response) {
                                var userid = response.data.userid;
                                var tokenid = response.data.tokenid;
                                loadEisoo(userid,tokenid);
                        },
                        error : function(jqXHR, textStatus, errorThrown){
                                alert(errorThrown);
                        }
                });
        }
       
        function loadEisoo(userid,tokenid){
                var url = "http://192.168.202.241/login?userid="+userid+"&tokenid="+tokenid;
                location.href = url;
                dd.biz.navigation.replace({
                        url : url,//要打开链接的地址
                        onSuccess : function(result) {

                        },
                        onFail : function(err) {
                                location.href = url;
                        }
                });
        }

       
</script>

这里注意:getUser函数调用后台服务,后台服务做两件事,1、用code参数访问钉钉取得钉钉中的用户信息,然后通过应用系统与钉钉用户的对应关系,确定用户id,对用户进行单点登录,返回id和tokenid(对bex5来说,返回bsessionid),loadEisoo函数重定向url,并传入id和tokenid(对bex5来说,传入bsessionid),实现免登录打开应用。
不知道对楼主有没有帮助?
回复 支持 1 反对 0

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2019-12-26 12:05:19 | 显示全部楼层
/BIZ/demo/actions/process/integration/DEMO_HTML.zip自己定义页面登录在拼接跳转
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

146

主题

589

帖子

1642

积分

金牌会员

Rank: 6Rank: 6

积分
1642
QQ
 楼主| 发表于 2019-12-26 15:00:06 | 显示全部楼层
我想在移动登录界面http://101.200.224.77:8080/x5/mobileUI/portal/mLogin.w做一个按钮,按钮的对应的js代码
var a =window.location.href;
alert(a);
怎么实现啊
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2019-12-26 15:35:23 | 显示全部楼层
那就重定项为你上面的登录的url啊
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

146

主题

589

帖子

1642

积分

金牌会员

Rank: 6Rank: 6

积分
1642
QQ
 楼主| 发表于 2019-12-26 16:01:32 | 显示全部楼层
jishuang 发表于 2019-12-26 15:35
那就重定项为你上面的登录的url啊

怎样在登录页面上增加一个 按钮,按钮运行代码
var a =window.location.href;
alert(a);
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2019-12-26 16:41:08 | 显示全部楼层
直接window.location.href等于你要跳转的地址啊,这个就是html标准的,不明白你问的是什么
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

146

主题

589

帖子

1642

积分

金牌会员

Rank: 6Rank: 6

积分
1642
QQ
 楼主| 发表于 2019-12-26 16:45:01 | 显示全部楼层
本帖最后由 wukongsky 于 2019-12-26 16:47 编辑
jishuang 发表于 2019-12-26 16:41
直接window.location.href等于你要跳转的地址啊,这个就是html标准的,不明白你问的是什么 ...

不明便你是干啥的
不明便你们公司是怎么考核员工的
我写的已经够明白了
我要再登录界面加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮,加一个按钮


你看不明白,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗,你看了吗
你们公司的服务越来越差了
越来越差了越来越差了越来越差了越来越差了越来越差了越来越差了越来越差了越来越差了越来越差了越来越差了


回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2019-12-26 17:23:11 | 显示全部楼层
1.回复的时候肯定看了,放组件就是直接拖放,拖放组件这个最基础的你是老用户应该知道所以就没写,或者就直接复制登录按钮自己改一下id
加一个按钮不是为了做跳转吗?按钮的事件中直接写window.location.href等于你要跳转的地址



所以不明白你要问题的是什么


2.大家都工作,请互相尊重





远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

146

主题

589

帖子

1642

积分

金牌会员

Rank: 6Rank: 6

积分
1642
QQ
 楼主| 发表于 2019-12-26 17:44:06 | 显示全部楼层
jishuang 发表于 2019-12-26 17:23
1.回复的时候肯定看了,放组件就是直接拖放,拖放组件这个最基础的你是老用户应该知道所以就没写,或者就直 ...

是要互相尊重,但是我写的你真看了吗。
我想在移动登录界面http://xxxxx:8080/x5/mobileUI/portal/mLogin.w做一个按钮,按钮的对应的js代码
var a =window.location.href;
alert(a);
怎么实现啊
这是我写的原话。移动登录界面是一般的w文件吗,能拖放吗?我怕你看不明白,还把移动登录界面的链接抄上去了,是移动登录界面加一个按钮!
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2019-12-26 17:48:26 | 显示全部楼层
5.2.7不是.w也是html,按html页面的语法,html中怎么写.w中一样的

8楼也写了可以自己参考登录按钮复制一个去修改,js就是标准的html中script,页面中的记住用户名就是标准的案例
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-28 02:53 , Processed in 0.099484 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表