single-sign-on - 如何在 Disqus 中查找 SSO 用户?

标签 single-sign-on disqus

我在 Disqus 中使用了 SSO,这样我的经过身份验证的用户就可以自动发帖到我的 Disqus 论坛,而无需单独进行身份验证。但是,我无法找到通过服务器端 API 调用将 SSO 用户列入白名单的方法。似乎在任何与用户相关的 API 调用中都无法识别我的 SSO 用户。

我尝试使用 user=[userid]email=[email] 调用 whitelists/add,并传递确切的用户 ID以及我用来设置 SSO 用户的电子邮件。用户 ID 不会返回任何错误,但它什么也不做。传递电子邮件会引发错误。

我尝试通过 users/detail API 查找我的 SSO 用户的 Disqus 用户 ID 或用户名:

   user=myuserid (the same id used for SSO)
   <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3f5a525e56530252464a4c5a4d7f5a525e5653115c5052" rel="noreferrer noopener nofollow">[email protected]</a>  (the same email used for SSO)
   user=remote:forumshortname-myuserid
   user:username=forumshortname-myuserid

运气不好。

/listUsers/users/detail 的 API 调用根本不会列出我的 sso 用户,因此我无法以这种方式检索他们的用户句柄。

令人沮丧的是,我可以在此处的 UI 控制台中看到用户: https://disqus.com/api/sso/users/ 对于域(而不是论坛),所以我知道这些数据存在。但我找不到通过 API 来实现它的方法。

有人有这个工作吗?

最佳答案

就 Disqus API 而言,SSO 用户的用户 ID 和用户名是由 Disqus 分配的,而不是网站分配的。它们在 Disqus 网络中是唯一的,尽管它们仅位于您网站的本地。

但是,如果您有自己的本地用户 ID,则可以对 Disqus 用户名进行反向查找以使用 API。模式为 {sso_slug}-{user_id_md5}

假设您的 SSO 远程域 slug 是 example,您可以在 python 中检索 Disqus 用户名,如下所示:

import hashlib

def get_disqus_username(user_id):
    m = hashlib.md5(user_id)
    hashed_id = m.hexdigest()
    return 'example-' + str(hashed_id)

现在您可以像这样发出 API 请求:

获取 https://disqus.com/api/3.0/users/details.json?api_key=YOUR_PUBLIC_KEY&user=用户名:DISQUS_USERNAME

关于single-sign-on - 如何在 Disqus 中查找 SSO 用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26225227/

相关文章:

Apache Shiro 和 SSO

javascript - HTML PHP 谷歌单点登录注销将抛出 "Cannot read property ' getAuthInstance' of undefined"

jwt - Keycloak 返回已经过期的 token

iframe - 如何将 Disqus 与 AMP 一起使用?

disqus - 使用 disqus API 创建匿名帖子失败

html - 如何更改disqus文本区域的颜色

java - Spring Boot Tomcat 嵌入 CA SSO/Siteminder 拦截

javascript - Sitefinity 的 Disqus

html - 有没有办法找到所有具有特定 CSS 类或 ID 的网页?标记的搜索引擎?

firefox - 在 Ubuntu 上通过 Firefox 进行单点登录 (SSO)