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

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

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

我们可以为您做到-转到单点登录设置,然后选择您的网站建设者,让我们的开发团队为您集成单点登录,起价仅为199美元。

我们还支持使用 SAML、OAuth2、L DAP、SQL 和 OpenID 进行单点登录。

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

SSO API 允许您发出 API 请求以获取用户的登录令牌,然后将其包含在论坛地址中以便用户登录。

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

  1. 获取你的 API 密钥

  2. 请求登录令牌

    在网站的登录脚本中,创建一个 HTTP 请求 到单点登录 API 的登录网址:

    https://FORUM_DOMAIN/register/setauthtoken?type=json&apikey=APIKEY&user=USER

    APIKEY 替换为您在步骤 1 中检索到的 API 密钥。

    US ER 替换为您要登录的论坛用户的用户名。如果您的网站不使用用户名,则可以使用电子邮件地址作为用户名。或者,如果您的数据库中存储了用户的论坛用户 ID,则可以使用 &userid= USERID 参数来代替 &user= US ER 参数。

    如果您希望在指定的论坛帐户不存在的情况下自动创建论坛账户,则可以选择包含 &email=email 参数。我们建议包含 email 参数。(将 EMAIL 替换为用户的电子邮件地址。)

    您还可以选择指定其他帐户信息,例如用户的全名(“name” 参数)、avatar(“avatar” 参数)等。其他参数必须进行 URL 编码。

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

  3. 从响应中获取令牌

    解析 HTTP 请求返回的 JSON 以获取身份验证令牌和用户 ID,然后将其存储在 cookie 或数据库中。身份验证令牌将在6个月后过期,或者在使用后立即过期,以确保高级别的安全性。JSON 响应将类似于以下内容:

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

    如果发生错误,将显示类似于以下 JSON 的 JSON,而不是正常的 JSON 响应:

    {
       "message": "The error message will be here."
    }
    
  4. 使用令牌登录用户

    在网站上的论坛链接中传递身份验证令牌。例如:

    <a href="https://FORUM_DOMAIN/?authtoken=AUTHTOKEN&remember=REMEMBER">Forum</a>

    AUT HTOKEN 替换为前面步骤中检索到的身份验证令牌。如果您希望在浏览器关闭后仍保持用户登录状态,请将 “记住” 替换为 1;如果您希望用户在浏览器会话结束时注销,请将其排除在外。

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

    <!--Begin Website Toolbox Forum Embed Code-->
    <div id="wtEmbedCode"><script type="text/javascript" id="embedded_forum" src="https://FORUM_DOMAIN/js/mb/embed.js?authtoken=AUTHTOKEN&remember=REMEMBER"></script> <noscript><a href="https://FORUM_DOMAIN">Forum</a></noscript></div>
    <!--End Website Toolbox Forum Embed Code-->

    或者,如果您不想在论坛地址中传递身份验证令牌,则可以将以下 HTML IMG 标记添加到 “登录成功” 登录页面:

    <img src="//FORUM_DOMAIN/register/dologin?authtoken=AUTHTOKEN&remember=REMEMBER" border="0" width="1" height="1" alt="">

    由于第三方cookie在Safari浏览器中被阻止,除非您的论坛已设置为使用子域名,否则IMG标记方法在Safari浏览器中将不起作用。

  5. 使用令牌将用户注销

    用户注销您的网站后,请将其重定向到以下地址,以便将他们从论坛中注销:

    https://FORUM_DOMAIN/register/logout?authtoken=AUTHTOKEN&redirect=REDIRECT_URL

    REDIRECT_UR L 替换为 URL 编码的网站地址,以便在用户退出论坛后将其发送到该地址。将 AUT HTOKEN 替换为前面步骤中检索到的身份验证令牌。当用于注销目的时,令牌的有效期为6个月,即使该令牌已经用于用户登录。一旦使用该令牌注销用户,令牌将立即过期。

    或者,如果您不想重定向用户,可以将以下 HTML IMG 标签添加到您网站的 “注销成功” 登录页面:

    <img src="//FORUM_DOMAIN/register/logout?authtoken=AUTHTOKEN" border="0" width="1" height="1" alt="">

    由于第三方cookie在Safari浏览器中被阻止,除非您的论坛已设置为使用子域名,否则IMG标记方法在Safari浏览器中将不起作用。

  6. 让你的论坛使用你网站的登录页面

    在 Website Toolbox 帐户的 “设置”-> “单点登录” 部分中,指定网站登录页面的地址,以确保所有论坛登录都使用您网站的登录表单进行。

  7. 让你的论坛使用你网站的注销页面

    (可选)在Website Toolbox帐户的 “设置”-> “单点登录” 部分中,指定您网站的 “注销” 页面的地址,以确保用户在登录网站后会看到您网站的注销页面已退出论坛。

使用自定义域名和我们的嵌入代码APIweb 挂钩进行更深入的设置整合。


If you still need help, please contact us.