钉钉扫码登录/免登录

374 阅读2分钟

前言

下面这两种方式核心逻辑都是钉钉服务器会存储一个临时授权码code,这个code会通过一些操作返回给开发人员,开发拿着这个code去查询用户的钉钉信息,比如拿到用户的手机号,再根据手机号去自己的业务系统看有没有这个人,有的话返回token

钉钉扫码登录

  • 钉钉开发后台创建一个微应用

  • 进入微应用,在左侧菜单栏找到 ”钉钉登录与分享“,填写第三方网站的地址,如https://webapp.yhchmo.com/yh-oa-page/#/ssoLogin

  • 自己做一个钉钉登录图标,配置该图标跳转地址:https://oapi.dingtalk.com/connect/qrconnect?appid=SuiteKey&response_type=code&scope=snsapi_login&state=STATE&redirect_uri=REDIRECT_URI,这里面的appid换成真实应用的appid,redirect_uri换成上一步填写的地址

  • 用户扫码完成后会访问redirect_uri并追加临时授权码code,前端此时拿着code去调用后端扫码登录的接口,后端根据code查询用户的钉钉信息,如果查到,比如拿到用户的手机号,则根据手机号再去自己的业务系统查询有没有该用户,如果有该用户,则进行一些业务逻辑处理 返回token,前端拿着token进入业务系统

  • 至此扫码登录流程完毕

  • 官网文档:扫码登录第三方网站 - 钉钉开放平台

钉钉内免登录

  • 钉钉内创建一个微应用

  • 进入微应用,在左侧菜单栏找到 ”钉钉登录与分享“,填写第三方网站的地址,如https://webapp.yhchmo.com/yh-oa-page/#/ssoLogin

  • 构造下面的地址https://oapi.dingtalk.com/connect/oauth2/sns_authorize?appid=APPID&response_type=code&scope=snsapi_auth&state=STATE&redirect_uri=REDIRECT_URI,这里面的appid换成真实应用的appid,redirect_uri换成上一步填写的地址

  • 进入钉钉开发后台,在左侧菜单栏找到 “开发管理”,将上一步的地址填写到 ”应用首页地址“ 和 ”PC端首页地址“,这一步就相当于给钉钉内的应用图标配置一个跳转地址

  • 用户点击应用图标后就会访问redirect_uri,并向该地址追加临时授权码code,前端此时拿着code去调用后端扫码登录的接口,后端根据code查询用户的钉钉信息,如果查到,比如拿到用户的手机号,则根据手机号再去自己的业务系统查询有没有该用户,如果有该用户,则进行一些业务逻辑处理 返回token,前端拿着token进入业务系统

  • 至此钉钉内免登录第三方网站流程完毕

  • 官方文档:钉钉内免登第三方网站 - 钉钉开放平台