FastComments.com Blog

Mon Apr 13 2020
...

Настройка на SSO с FastComments

Преглед

Какво е SSO?

SSO, или single-sign-on, представлява набор от конвенции, използвани за да позволят на вас или вашите потребители да използват FastComments, без да е необходимо да създават друга сметка.

Предполага се, че ако не позволявате анонимни коментари, ще е необходима сметка, за да коментирате с FastComments. Ние правим този процес на регистрация много лесен - потребителят просто оставя своя имейл, когато коментира. Въпреки това, разбираме, че дори това е допълнителна пречка, която някои сайтове искат да избегнат.

Как да го получа?

Всички типове акаунти в момента получават достъп до SSO, както и поддръжка. Въпреки това, максималният брой потребители на SSO ще варира в зависимост от вашия пакет.

Потребители на WordPress

Ако използвате нашия WordPress плъгин, тогава няма код за писане! Просто отидете на администраторската страница на плъгина, кликнете върху Настройки на SSO и след това активирайте.

Това ще ви отведе до магьосник с един бутон, който ще създаде вашия API ключ, ще го изпрати до вашата инсталация на WordPress и ще активира SSO. Събрахме това в един клик за вас.

Обърнете внимание, че ако инсталирате плъгина за първи път, ще трябва да следвате процеса на настройка, преди да видите администраторската страница с бутона за Настройки на SSO.

Персонализирани интеграции

FastComments SSO използва HMAC-SHA256 криптиране като механизъм за реализиране на SSO. Първо ще прегледаме общата архитектура, ще предоставим примери и подробни стъпки. В края на този артикул има инструкции за мигриране от Disqus и Commento.

Процесът изглежда така:

Диаграма на FastComments SSO

Не е необходимо да пишете нови API крайни точки с FastComments SSO. Просто криптирайте информацията на потребителя, използвайки вашия таен ключ, и предайте полезния товар на коментарния виджет.

Предоставяме напълно функционални примери на код на няколко езика / среда, включително NodeJS, Java/Spring и чист PHP. Въпреки че използваме ExpressJS в примера с NodeJS и Spring в примера с Java, не се изискват рамки / библиотеки в тези среди за реализиране на FastComments SSO - местните крипто пакети работят.

Можете да намерите хранилището с примери на код тук:

Примери на код за FastComments SSO

Получете вашия API таен ключ

Вашият API тайна може да бъде извлечен от тази страница. Можете да намерите тази страница и като отидете на Моят акаунт, кликнете върху плочката API/SSO и след това кликнете на "Получаване на API таен ключ".

Параметри на коментарния виджет

Високо ниво на API документация за коментарния виджет може да бъде намерено тук и като кликнете на "Покажи разширени опции". Търсете SSO на страницата.

Нека да навлезем в повече детайли относно това какво означават тези параметри.

Коментарният виджет приема конфигурационен обект - вие вече предавате това, ако използвате FastComments, за да предадете вашия идентификатор на клиента (наречен tenantId).

За да активирате SSO, предайте нов обект "sso", който трябва да има следните параметри. Стойностите трябва да бъдат генерирани на сървъра.

  • userDataJSONBase64: Данните на потребителя в JSON формат, които след това са кодирани в Base64.
  • verificationHash: HMAC-SHA256 хеша, създаден от UNIX_TIME + userDataJSONBase64.
  • timestamp: Текущото unix време. Не трябва да бъде в бъдещето, или повече от три часа в миналото.
  • loginURL: URL, който коментарният виджет може да покаже, за да влезе потребителят.
  • logoutURL: URL, който коментарният виджет може да покаже, за да излезе потребителят.
  • loginCallback: Когато е предоставен вместо URL за вход, функция, която коментарният виджет ще извика при натискане на бутона за вход.
  • logoutCallback: Когато е предоставен вместо URL за изход, функция, която коментарният виджет ще извика при натискане на бутона за изход.

Обект на потребителя

Обектът на потребителя съдържа следната схема:

  • id (стринг, задължително) (макс. 1к символа)
  • email (стринг, задължително) (макс. 1к символа). Забележка: Трябва да бъде уникален.
  • username (стринг, задължително) (макс. 1к символа). Забележка: Потребителското име не може да бъде имейл. Не е необходимо да бъде уникално.
  • avatar (стринг, по избор) (макс. 3к символа)
  • 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 и актуализирайте имената на свойствата, предавани на потребителския интерфейс.

Мигриране от Commento SSO

Commento използва съвсем различен подход за SSO - те изискват да имате крайна точка, която те извикват, за да удостоверят потребителя. FastComments е обратното - просто кодирайте и хеширайте информацията на потребителя, използвайки вашия таен ключ, и я предайте допълнително.

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