前言
下面这两种方式核心逻辑都是钉钉服务器会存储一个临时授权码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进入业务系统 -
至此钉钉内免登录第三方网站流程完毕
-
官方文档:钉钉内免登第三方网站 - 钉钉开放平台