电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

海外手机号钉钉免登二开案例

来源:金蝶云社区作者:金蝶2024-09-2316

海外手机号钉钉免登二开案例

一、场景

集成钉钉的轻应用,境内用户可以实现免登跳转登录,境外用户手机号一致无法钉钉免登苍穹。

如:钉钉将境外号码852-857xx311拆分为区号+手机号2个字段返回,需升级苍穹至v6.0.2版本,如不升级,需二开免登插件解决。


二、免登插件二开示例

 

package kd.bos.login.thirdauth.app.dingding;

 

import kd.bos.dc.api.model.Account;

import kd.bos.logging.Log;

import kd.bos.logging.LogFactory;

import kd.bos.login.thirdauth.app.AppAuthResult;

import kd.bos.login.thirdauth.app.ThirdAppAuthtication;

import kd.bos.login.thirdauth.app.UserType;

import kd.bos.login.utils.StringUtils;

import kd.bos.util.RevProxyUtil;

 

import javax.servlet.http.HttpServletRequest;

import java.util.HashMap;

 

public class DDAuthticationExt extends ThirdAppAuthtication {

 

    private static final String ERRMSG = "errmsg";

 

    private static Log logger = LogFactory.getLog(DDAuthticationExt.class);

 

    @Override

    public boolean isNeedHandle(HttpServletRequest request, Account currentCenter) {

        String app_type = request.getParameter("apptype");

        String code = request.getParameter("code");

        //是否需要钉钉认证

        return !StringUtils.isEmpty(app_type) && app_type.equalsIgnoreCase("dd") && !StringUtils.isEmpty(code);

    }

 

    @Override

    public AppAuthResult appAuthtication(HttpServletRequest request, Account currentCenter) {

        AppAuthResult result = new AppAuthResult();

        result.setSucceed(false);

        //钉钉类型

        String app_type = request.getParameter("apptype");

        if (StringUtils.isEmpty(app_type)) {

            return result;

        }

        //钉钉身份标识

        String code = request.getParameter("code");

        if (StringUtils.isEmpty(code)) {

            return result;

        }

        String tenant = RevProxyUtil.getTenantCode(request);

        String reurnType = DDUtils.getLoginType(currentCenter,tenant);

        String appkey = request.getParameter("appkey");

        if (StringUtils.isEmpty(appkey)) {

            logger.error("dd login: appkey is blank !");

            return result;

        }

        String appsecret = request.getParameter("appsecret");

        if (StringUtils.isEmpty(appsecret)) {

            appsecret = StringUtils.getTrimedBlank(DDUtils.getAppSecret(appkey, currentCenter));

            if (StringUtils.isEmpty(appsecret)) {

                logger.error("dd login: appsecret is blank !");

                return result;

            }

        }

        //获取钉钉accessToken

        String access_token = DDUtils.getAccess_token(appkey, appsecret,currentCenter);

        if (StringUtils.isEmpty(access_token)) {

            logger.info("dd:access_token is null !");

            result.setErrorMessage("dd:access_token is null !");

            return result;

        }

        logger.info("dd: code is : " + code);

        //获取钉钉用户id

        String userId = DDUtils.getUserId(access_token, code,currentCenter);

        if (StringUtils.isEmpty(userId)) {

            logger.info("dd:userId is null !");

            result.setErrorMessage("userId is null !");

            return result;

        }

        //获取钉钉用户信息

        HashMap<String, Object> userMap = DDUtils.getUserInfo(access_token, userId,currentCenter);

        if (null == userMap) {

            log

海外手机号钉钉免登二开案例

一、场景集成钉钉的轻应用,境内用户可以实现免登跳转登录,境外用户手机号一致无法钉钉免登苍穹。如:钉钉将境外号码852-857xx311拆分为区...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信