FastComments.com Blog
Mon Apr 13 2020
...

Подешавање SSO‑а са FastComments

Преглед

Шта је SSO?

SSO, или single‑sign‑on, је скуп конвенција које омогућавају вама или вашим корисницима да користе FastComments без потребе да креирају додатни налог.

Под претпоставком да не дозвољавате анонимно коментарисање, потребан је налог за коментарисање са FastComments. Ми чинимо процес регистрације врло једноставним – корисник само оставља своју е‑mail адресу приликом коментирања. Међутим, разумемо да чак и то представља додатну трње за неке сајтове које желе да избегну.

Како да га добијем?

Све врсте налога тренутно добијају приступ SSO‑у као и подршку. Међутим, максималан број SSO корисника ће се разликовати у зависности од вашег пакета.

WordPress корисници

Ако користите наш WordPress додатак, не треба да пишете код! Само идите на администраторску страницу додатка, кликните на SSO подешавања, а затим на Омогући.

Ово ће вас одвести до чаробњака са једним кликом који ће генерисати ваш API кључ, послати га вашој WordPress инсталацији и укључити SSO. Ово смо консолидовали у један клик за вас.

Имајте у виду да ако први пут инсталирате додатак, мораћете да завршите процес подешавања пре него што видите администраторску страницу са дугметом SSO подешавања.

Прилагођене интеграције

FastComments SSO користи HMAC‑SHA256 шифровање као механизам за имплементацију SSO‑а. Прво ћемо прегледати укупну архитектуру, пружити примере и детаљне кораке. На крају овог чланка налазе се упутства за миграцију са Disqus и Commento.

Ток изгледа овако:

FastComments SSO Diagram

Не морате да пишете нове API крајње тачке са FastComments SSO. Само шифрујте информације корисника користећи ваш тајни кључ и проследите пакет у widget за коментаре.

Обезбеђујемо потпуно функционалне примере кода у неколико језика/оквира, укључујући NodeJS, Java/Spring и чисти PHP. Иако у NodeJS примеру користимо ExpressJS, а у Java примеру Spring, у овим окружењима нису потребни додатни оквири/библиотеке за имплементацију FastComments SSO – раде нативни крипто пакети.

Репозиторијум са примерима кода можете пронаћи овде:

FastComments SSO Code Examples

Прибавите ваш API тајни кључ

Ваш API тајни кључ можете преузети са ове странице. Ову страницу можете такође пронаћи тако што ћете отићи у Моји налози, кликнути на плочицу API/SSO, а затим кликнути „Get API Secret Key“.

Параметри widget‑а за коментаре

Документација API‑ја на вишем нивоу за widget за коментаре се налази овде и кликните на „Show Advanced Options“. Претражите SSO на страници.

Хајде да детаљније објаснимо шта ови параметри значе.

Widget за коментаре прихвата објекат конфигурације – већ га прослеђујете ако користите FastComments за прослеђивање вашег ID‑а клијента (названог tenantId).

Да бисте омогућили SSO, проследите нови „sso“ објекат, који мора имати следеће параметре. Вредности треба да се генеришу на серверу.

  • userDataJSONBase64: Подаци корисника у JSON формату, који се затим кодира у Base64.
  • verificationHash: HMAC‑SHA256 хеш направљен од UNIX_TIME + userDataJSONBase64.
  • timestamp: Текуће unix време. Не сме бити у будућности, нити више од три сата у прошлости.
  • loginURL: URL који widget за коментаре може приказати за пријаву корисника.
  • logoutURL: URL који widget за коментаре може приказати за одјаву корисника.
  • loginCallback: Када се наведе уместо login URL, функција коју ће widget за коментаре позвати при клику на дугме за пријаву.
  • logoutCallback: Када се наведе уместо logout URL, функција коју ће widget за коментаре позвати при клику на дугме за одјаву.

Објекат корисника

Објекат User садржи следећу шему:

  • id (стринг, обавезно) (максимум 1k карактера)
  • email (стринг, обавезно) (максимум 1k карактера). Напомена: Мора бити јединствен.
  • username (стринг, обавезно) (максимум 1k карактера). Напомена: Корисничко име не сме бити e‑mail. Не мора бити јединствено.
  • avatar (стринг, опционо) (максимум 3k карактера)
  • optedInNotifications (бул, опционо)
  • displayLabel (стринг, опционо, максимум 100 карактера). Ова ознака ће се приказати поред њиховог имена.
  • websiteUrl (стринг, опционо, максимум 2000 карактера). Име корисника ће бити линк ка овој адреси.

Обавештења

Да бисте омогућили или онемогућили обавештења, поставите вредност optedInNotifications на true или false, респективно. При првом учитавању странице од стране корисника са овом вредношћу у SSO пакету, њихова подешавања обавештења ће се ажурирати.

VIP корисници и посебне ознаке

Можете приказати посебну ознаку поред имена корисника користећи опционо поље „displayLabel“.

Неаутентификовани корисници

Да бисте представили неаутентификованог корисника, једноставно не попуњавајте userDataJSONBase64, verificationHash или timestamp. Обезбедите loginURL.

Директни примери за серијализацију и хеширање података корисника

Више детаља као примери овде (js), овде (java) и овде (php).

Миграција са Disqus SSO

Највећа разлика између Disqus и FastComments SSO је што Disqus користи SHA1 за шифровање, док ми користимо SHA256. Ово значи да је миграција са Disqus‑а једноставна – промените алгоритам хеширања са SHA1 на SHA256 и ажурирајте имена својстава прослеђених UI‑у.

Миграција са Commento SSO

Commento користи суштински другачији приступ SSO‑у – захтева од вас да имате крајњу тачку коју они позивају за аутентификацију корисника. FastComments ради супротно – једноставно кодирате и хеширате информације корисника користећи ваш тајни кључ и прослеђујете их.

Разумемо да свака интеграција може бити компликован и мучан процес. Не оклевајте да контактирате вашег представника или користите страницу за подршку.