钉钉免登陆的这几个步骤, 在钉钉的后端服务都是怎么实现的, 有没有人想过?

用户打开钉钉首页, 点击某一个应用的图标, 进入到企业自己应用的h5页面, 经历的步骤还是很多的, 如下:

  1. 注册企业, 得到corpId和CorpSecret
  2. 应用后端服务: 用corpId和CorpSecret获取accessToken
  3. 应用后端服务: 用accessToken获取jsTicket
  4. 应用后端服务: 对 ’url’,‘nonceStr’,‘agentId’,‘timeStamp’,‘CorpId’ 签名, 得到 signature, 并返回前端
  5. 应用前端页面: 用上一步的数据执行dd.config进行验证
  6. 应用前端页面: 执行 dd.runtime.permission.requestAuthCode 得到 code, 然后传给后端
  7. 应用后端服务: 用 code 和 accessToken 获取 userId
  8. 应用后端服务: 用 userId 和 accessToken 获取 userInfo

??????????????????

步骤2: 钉钉后台是不是走了一个密码认证的一个过程, 然后 redis 中存储 这个 accessToken, 并设置 expire = 2h

步骤5: 这步骤好像很关键, 获取的 code 就可以对应上用户了, 钉钉后台貌似是redis存 key:code, value: userId , 有些迷糊, dd.config 和 dd.ready

阅读 5.3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题