项目中集成钉钉扫码登录

需要获取三个参数

appid,appSecret和回调域名

在自己服务中

直接调用render接口就行

@RestController
@RequestMapping("/oauth")
public class DingDingLoginController {

    @RequestMapping("/render")
    public void renderAuth(HttpServletResponse response) throws IOException {
        AuthRequest authRequest = getAuthRequest();
        response.sendRedirect(authRequest.authorize(AuthStateUtils.createState()));//会显示登录的二维码
    }

    @RequestMapping("/callback")
    public Object login(AuthCallback callback) {
        AuthRequest authRequest = getAuthRequest();
        return authRequest.login(callback);
    }

    private AuthRequest getAuthRequest() {
        return new AuthDingTalkRequest(AuthConfig.builder()
                .clientId("dingoarg8xwz0o2iurhmsz")
                .clientSecret("hSlZNiq3jIEnwsMuWwsTdymUruPgc_cjXjMB4lERAAHTnz1Lh257kdu38yIJmmyE")
                .redirectUri("http://localhost:20021/oauth/callback")
                .build());
    }
}

返回值是

{
  "code": 2000,
  "msg": null,
  "data": {
    "uuid": "ebxJIZiPqeiPoeINHnTH2bRwiEiE",
    "username": "王xx",
    "nickname": "王xx",
    "avatar": null,
    "blog": null,
    "company": null,
    "location": null,
    "email": null,
    "remark": null,
    "gender": "UNKNOWN",
    "source": "DINGTALK",
    "token": {
      "accessToken": null,
      "expireIn": 0,
      "refreshToken": null,
      "refreshTokenExpireIn": 0,
      "uid": null,
      "openId": "WS6t4WUY1b79TFUVKlUc5QiEiE",
      "accessCode": null,
      "unionId": "ebxJIZiPqeiPoeINHnTH2bRwiEiE",
      "scope": null,
      "tokenType": null,
      "idToken": null,
      "macAlgorithm": null,
      "macKey": null,
      "code": null,
      "oauthToken": null,
      "oauthTokenSecret": null,
      "userId": null,
      "screenName": null,
      "oauthCallbackConfirmed": null
    },
    "rawUserInfo": {
      "nick": "王xx",
      "unionid": "ebxJIZiPqeiPoeINHnTH2bRwiEiE",
      "dingId": "$:LWCP_v1:$6h5ewoOME66PPLzmNpXts3/PN/1BM5nG",
      "openid": "WS6t4WUY1b79TFUVKlUc5QiEiE",
      "main_org_auth_high_level": true
    }
  }
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java,要实现与钉钉扫码功能,通常会使用钉钉开放平台提供的API和SDK。钉钉提供了Java SDK供开发者集成,以便于处理用户扫描二维码登录、获取临时权限等功能。以下是一般的步骤: 1. 注册钉钉开发者账号并创建应用:首先,你需要在钉钉开放平台上注册(https://open.dingtalk.com/)并创建一个新的应用,获取App Key和App Secret。 2. 添加依赖:在你的项目添加钉钉SDK的依赖,如果是Maven,可以在pom.xml添加如下代码: ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>dingtalk-sdk</artifactId> <version>版本号</version> </dependency> ``` 3. 初始化SDK:在应用启动时,用App Key和App Secret初始化SDK,如: ```java DingTalkClient.init("your_app_key", "your_app_secret"); ``` 4. 生成扫码二维码:调用SDK的方法生成二维码,例如: ```java QRCode qrCode = new QRCode(); qrCode.setCodeType(QRCode.CODE_TYPE_TEMP); qrCode.setTitle("扫码登录"); qrCode.setExpiration(60); // 二维码有效时间(秒) String ticket = qrCode.getQRCodeTicket(); ``` 这将返回一个包含临时权限的二维码图片链接或二维码码串。 5. 用户扫码后,钉钉服务器会发送事件到你的回调地址,你可以通过监听这些事件来处理用户的登录请求。 6. 处理回调:在你的服务端,设置一个回调URL,当用户扫码后,钉钉会发送登录事件到这个地址,通过验证事件参数,验证用户身份。 相关问题: 1. 钉钉扫码的具体API调用是什么样子的? 2. 如何在Java处理钉钉推送的扫码登录事件? 3. 如何验证钉钉服务器传递的扫码事件参数?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值