第5节--集成钉钉消息,点击钉钉消息如何免登进入业务系统

 

如何根据授权码直接进入业务系统?

1 由前端根据钉钉企业id去获取钉钉用户授权码。传递服务端(后端),服务端根据授权码去调钉钉接口,如果发现该用户的钉钉id和业务系统的某个用户有关联关系,服务端进行seesion处理。具体可以看文档交互。

大概所有接口: 前端获取授权码。前端调用后端免登接口(参数:授权码,钉钉企业id等),后端调用钉钉SDK根据授权码获取用户信息,session处理。

 

 

点击消息免登实现?

消息模板需要配置链接点击页,笔者配置的页面为

dingtalk://dingtalkclient/action/openapp?corpid=${corpId}&container_type=work_platform&app_id=${appId}&redirect_type=jump&redirect_url=${url}

${corpId}  ${appId}  可以调用消息模板发送工作消息赋值, {url} 赋值,重定向地址 一定要 urlencode编码

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

public class DingTalkRedirectURLEncoder {
    public static void main(String[] args) {
        String redirectURL = "https://example.com/redirect";
        String encodedURL = encodeRedirectURL(redirectURL);
        System.out.println("Encoded URL: " + encodedURL);
    }
    
    public static String encodeRedirectURL(String redirectURL) {
        try {
            return URLEncoder.encode(redirectURL, "UTF-8");
        } catch (UnsupportedEncodingException e) {
            // 处理编码异常
            e.printStackTrace();
        }
        return null;
    }
}

  这样在工作台,打开消息进入的是配置的前端处理逻辑页面,前端获取重定向地址中的cropId ,去调用用户授权码,再去调用后端免登接口,实现直接进入业务系统。

 

posted @ 2023-06-29 13:55  夏风中的Young_Uncle  阅读(155)  评论(0编辑  收藏  举报