Help > Forum > 網站集成 > 单点登录-基于令牌的身份验证

单点登录-基于令牌的身份验证

如果您正在使用 WordPress,请使用我们的 插件.

我们可以为您做到 -转到 单一登录设置 ,然后选择您的网站构建器,让我们的开发团队为您整合 SSO,费用仅为 149 美元。

我们还支持使用 萨姆尔, OAuth2、LDAP、SQL 和开放 ID.

您可以使用单点登录 (SSO) API 自动将您的访客登录到您的论坛。 如果您的网站上有一个单独的登录区域,并且您不想让你的访问者登录两次,这可能会很有帮助。

SSO API 允许您从应用程序中发送 HTTP 请求,以将用户登录到或退出您的论坛。 API 返回一个令牌,然后在下一页的小型 IMG 标签中使用,以存储必要的浏览器 Cookie。

请按照以下说明将 SSO API 集成到您的网站:

  1. 如果您使用的是 PHP,我们强烈建议您使用我们的 PHP SSO 库,它包含一个包含您需要的所有库代码的文件,以及包含示例用法的其他文件。

  2. 获取您的 API 密钥。
  3. 在网站的登录脚本中,创建一个 HTTP 请求 到 SSO API 日志中:
  4. https://USERNAME.websitetoolbox.com/register/setauthtoken?type=json&apikey=APIKEY&user=USER

    替换 APIKEY 与您在步骤 1 中检索的 API 密钥一起使用。

    替换 USER 与您想要登录的论坛用户的用户名。

    您可以选择包括一个 &email=EMAIL 参数,如果您希望在指定的论坛帐户不存在的情况下自动创建论坛帐户。 我们建议包含电子邮件参数。 您也可以选择 指定其他账户信息 或一个 &pw=PASSWORD 参数设置新帐户的密码。 (将电子邮件和密码替换为用户的电子邮件地址和未加密/未加密的密码。) 在没有密码的情况下创建帐户,用户将无法直接登录到论坛,除非他们首先在登录页面上重置密码。 SSO 登录将顺利工作,即使没有用户的帐户有密码。

    您也可以 使用电子邮件地址作为用户名.

  5. 解析 HTTP 请求返回的 JSON 以获取身份验证令牌和用户 ID,然后将其存储在 cookie 中。 JSON 响应看起来像这样:

    {
      "authtoken": "88SngRVArwrsZ053lfrqL",
      "userid": 424764
    }
    

  6. 在您的网站上,将以下 HTML IMG 标记添加到 “成功登录” 登录页面:

    <img src="//USERNAME.websitetoolbox.com/register/dologin?authtoken=AUTHTOKEN" border="0" width="1" height="1" alt="">

    替换 AUTHTOKEN ,并在步骤 3 中检索的身份验证令牌。

    加载 IMG 标签的浏览器窗口将以用户身份登录到论坛,使用步骤 2 中提供的用户名。

  7. 在您的网站上,将以下 HTML IMG 标记添加到 “成功注销” 登录页面:

    <img src="//USERNAME.websitetoolbox.com/register/logout?authtoken=AUTHTOKEN" border="0" width="1" height="1" alt="">

    替换 AUTHTOKEN ,并在步骤 3 中检索的身份验证令牌。

  8. 设置-> 单点登录 部分中,指定您网站的 登录页面 ,以确保所有论坛登录都使用您网站的登录表单进行。

  9. 设置-> 单点登录 部分中,指定您网站的 注销页面 ,以确保用户在退出论坛后会显示您的网站的注销页面。

  10. 为您的论坛设置子域名。 例如,https://forums.yourwebsite.com。 此步骤是可选的。 但是,Safari 浏览器附带一个保守的 Cookie 策略,该策略将 Cookie 写入仅限于用户选择的页面(“导航到”)。 这可以防止论坛的 cookie 登录被设置在 “登录成功” 登录页面上。 因此,使单点登录在 Safari 浏览器上工作的唯一方法是为您的论坛使用子域名,或在您的网站上的论坛链接中传递身份验证令牌。 例如:

    <a href="https://USERNAME.websitetoolbox.com/?authtoken=AUTHTOKEN">Forum</a>

    如果您使用嵌入代码,您可以将身份验证令牌传递到嵌入论坛的页面或 src 属性中的嵌入代码。

重要说明:

  • 如果您购买了托管域名,或者您正在为您的论坛使用自定义域名,请使用该域名,而不是 “用户名 .WebSiteToolbox.com”。
  • 用户名应替换为您的Website Toolbox用户名。
  • A &userid=USERID 参数可以传递,而不是 &user=USER 参数。
  • 如果发生错误,将出现类似于下面的 JSON 的 JSON,而不是正常的 JSON 响应:

    {
       "message": "The error message will be here."
    }
    

  • 如果您需要注销用户,并且没有步骤 2 中的 HTTP 请求期间返回的身份验证令牌,则可以通过向以下 URL 发出 HTTP 请求来恢复身份验证令牌,或者您可以生成新的身份验证令牌。

    https://USERNAME.websitetoolbox.com/register/getauthtoken?type=json&apikey=APIKEY&user=USER

  • 您也可以整合您网站的注册流程。 更多信息...
  • 在步骤 3 中检索的身份验证令牌在生成新身份验证令牌时或在使用该令牌后立即过期,以确保高级别的安全性。 身份验证令牌用于注销时,仅在生成新的身份验证令牌后过期。
  • 通常用户将在浏览器会话结束时注销。 若要在浏览器关闭后保持用户登录,请添加 &remember=1 到步骤 5 和 9 中的 URL 的末尾。
  • 查询字符串必须为 URL 编码。
  • 使用我们的 API 来执行各种其他集成。


If you still need help, please contact us.