README.md

    tdsql集成文档说明

    基于commento的评论服务

    简介

    Commento 是一个轻量级的嵌入式网站评论系统。您可以将其嵌入到您的博客,新闻文章以及您希望读者添加评论的任何地方。不仅能嵌入到没有用户系统的页面中,也能通过SSO和已有的用户系统融合。

    本评论服务底层的数据存储采用了腾讯的TDSQL-C数据库。

    网站注册

    首先您需要在评论服务后台注册您希望嵌入评论的网站。 访问https://common-api.csdn.net注册一个后台账号,然后登录即可在该后台添加您的网站。

    评论接入

    只需将下面代码嵌入到您网页中希望展示评论的位置即可。

    <div id="commento"></div>
    <script defer
      src="https://common-api.csdn.net/js/commento.js">
    </script>

    通过SSO将commento和已有账号系统融合

    Commento还提供了SSO功能。可使用已有账号体系来进行评论。

    首先需要在后台开启SSO功能。获取secrectKey,填写重定向地址(该地址为自己系统的地址)。

    重定向地址中需要处理的逻辑如下:

    伪代码

    secret-key = hex-decode("001ac5d3c197c4d7493f561f5a696c149b925a07d8bedcee993745f15eb53ac6")
    
    def handle-GET:
      token = query-param("token")
      hmac = hex-decode(query-param("hmac"))
    
      expected-hmac = hmac-sha256(hex-decode(token), secret-key)
      if hmac != expected-hmac:
        discard and terminate
    
      email, name, link, photo = authenticate()
    
      payload-json = {
        "token": token,
        "email": email,
        "name":  name,
        "link":  link,
        "photo": photo,
      }
    
      hmac = hex-encode(hmac-sha256(payload-json, secret-key))
      payload-hex = hex-encode(payload-json)
    
      302-redirect("https://common-api.csdn.net/api/oauth/sso/callback?payload=" + payload-hex + "&hmac=" + hmac)

    基于PHP的Laravel框架代码示例:

    Route::get('/sso/commento', function (\Illuminate\Http\Request $request) {
    
        $secretKey = hex2bin("1583dfdc265ee3df2f62ab4d9c0a350333045855a2912ced30dfbd7c3c13dc8f");
    
        $hmac = hex2bin($request->query('hmac'));
        $token = $request->query('token');
    
        $expectedHmac = hash_hmac('sha256', hex2bin($token), $secretKey);
    
        // 进行校验
    
        // 用户状态判断
        // 判断session里面的登录信息
    
        $payloadJson = json_encode([
            'token' => $token,
            'email' => 'hubt@163.com', // 这个应该从系统的登录信息里面获取(session)
            'name' => 'hubt'           // 这个应该从系统的登录信息里面获取(session)
        ]);
    
        $hmac = hash_hmac('sha256', $payloadJson, $secretKey);
        $payloadHex = bin2hex($payloadJson);
    
        return redirect()->away("https://common-api.csdn.net/api/oauth/sso/callback?payload=" . $payloadHex . "&hmac=" . $hmac );
    
        // return [$hmac, $token];
    });

    项目简介

    当前项目暂无项目简介

    发行版本

    当前项目没有发行版本

    贡献者 2

    Metz @theo789
    H hubiteng @hubiteng

    开发语言

    • HTML 100.0 %