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];
});