开发者社区 问答 正文

请教个钉钉问题:第三方网站实现钉钉账号登录,后台是如何知道该返回哪个用户的授权码的呢?

请教个钉钉问题:第三方网站实现钉钉账号登录,https://login.dingtalk.com/oauth2/auth?
redirect_uri=https%3A%2F%2Fwww.aaaaa.com%2Fauth
&response_type=code
&client_id=dingxxxxxxx //应用的AppKey
&scope=openid //此处的openId保持不变
&state=dddd
&prompt=consent,这个url里没有任何关于登录用户的信息,后台是如何知道该返回哪个用户的授权码的呢?3fbe1d2fc3cb87b73fc2e47f0bd87f32.png

展开
收起
真的很搞笑 2023-12-14 06:33:59 132 分享 版权
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    您好,钉钉第三方网站实现账号登录时,用户在钉钉中同意授权后,会跳转到指定的回调地址(redirect_uri),并携带一个code码作为参数。这个code码是用于获取用户的openid等信息的凭证。

    因此,当用户访问回调地址时,后台需要通过code码来获取用户的openid等信息。具体步骤如下:

    1. 后台接收到用户访问回调地址时,从URL中解析出code码。
    2. 使用code码调用钉钉开放平台的授权接口(例如:https://oapi.dingtalk.com/connect/oauth2/sns_authorize),获取access_token和refresh_token。
    3. 使用access_token调用钉钉开放平台的获取用户信息接口(例如:https://oapi.dingtalk.com/user/getuserinfo),获取用户的openid等信息。
    4. 将获取到的openid等信息返回给前端项目。
    2023-12-14 16:04:10
    赞同 展开评论
  • 钉钉完成登录后会重定向到redirect_url这个地址,并且会带一个临时code ,应用要根据这个code调用钉钉接口换取用户信息 ,此回答整理自钉群“钉钉开发者社区(互助群)”

    2023-12-14 08:44:53
    赞同 展开评论