Jak bezpiecznie moderować czat i użytkowników za pomocą BizOps Workspace
Published: 2024-05-23 10:00:09

Ten artykuł instruktażowy jest częścią serii artykułów omawiających możliwości zarządzania danymi PubNub, znane pod wspólną nazwą [BizOps Work](https://pubnub.com/docs/bizops-workspace/basics?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl)space:

-   [Jak zarządzać użytkownikami i kanałami za pomocą BizOps Workspace](https://pubnub.com/how-to/manage-users-and-channels-with-bizops-workspace/?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl)
-   [Jak monitorować i moderować konwersacje za pomocą BizOps Workspace](https://www.pubnub.com/how-to/monitor-and-moderate-conversations-with-bizops-workspace/?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl)
-   Jak bezpiecznie moderować konwersacje i użytkowników za pomocą BizOps Workspace

BizOps Workspace to zestaw narzędzi, które pomagają zarządzać aplikacją. Ten artykuł rozszerzy poprzedni artykuł "Jak[monitorować i moderować konwersacje](https://www.pubnub.com/how-to/monitor-and-moderate-conversations-with-bizops-workspace/?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl)za pomocą BizOps Workspace", aby pokazać kompleksową bezpieczną aplikację do czatowania z ręcznymi możliwościami moderacji, tj. możliwością monitorowania konwersacji w czasie rzeczywistym oraz wyciszania lub blokowania użytkowników.

Chociaż ten artykuł można czytać samodzielnie, zdecydowanie zalecam przeczytanie poprzedniego artykułu "[Jak monitorować i moderować konwersacje za](https://www.pubnub.com/how-to/monitor-and-moderate-conversations-with-bizops-workspace/?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl)pomocą BizOps Workspace", aby lepiej zrozumieć tło omawianych tutaj koncepcji.

Czym jest Channel Monitor?
--------------------------

Channel Monitor umożliwia moderatorom czatu oglądanie na żywo podglądu rozmów prowadzonych w czasie rzeczywistym na wielu kanałach. Jeśli moderator zauważy coś niepokojącego, takiego jak niewłaściwie zachowujący się użytkownik lub obraźliwe wiadomości, może natychmiast podjąć działania w celu złagodzenia problemu.

Moderator ma dużą swobodę w zakresie podejmowanych działań:

-   Obserwować użytkownika bez ograniczania jego praw dostępu
-   edytować lub usunąć obraźliwą wiadomość
-   ograniczyć możliwość publikowania wiadomości przez użytkownika[(wy](https://pubnub.com/docs/bizops-workspace/channel-monitor#mute?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl)ciszyć)
-   ograniczyć użytkownikowi możliwość czytania lub publikowania wiadomości ([ban](https://pubnub.com/docs/bizops-workspace/channel-monitor#ban?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl)).

Wszystkie możliwości w ramach funkcji "Monitor" są ręczne: ręczne przeglądanie wiadomości, ręczne wyciszanie użytkowników itp. Ten artykuł nie omawia automatycznej moderacji.

Aby korzystać z funkcji Channel Monitor, konieczne jest włączenie kilku funkcji w zestawie kluczy PubNub, w szczególności [kontekstu aplikacji](https://www.pubnub.com/docs/general/metadata/channel-metadata?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl) i [trwałości](https://www.pubnub.com/docs/general/storage?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl) wiadomości. Więcej szczegółów można znaleźć w sekcji "Wymagania dotyczące zestawu kluczy dla Channel Monitor" w [poprzednim artykule](https://www.pubnub.com/how-to/monitor-and-moderate-conversations-with-bizops-workspace/?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl).

Czym jest menedżer dostępu PubNub?
----------------------------------

**Programiści muszą chronić się przed użytkownikami próbującymi obejść ich system** moderacji; można to osiągnąć za pomocą menedżera dostępu PubNub.

[Menedżer](https://www.pubnub.com/docs/general/security/access-control?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl) dostępu pozwala zdefiniować zestaw reguł, które opisują uprawnienia określonego użytkownika (lub użytkowników) i jakie działania mogą wykonywać na określonych zasobach. Na przykład:

-   Użytkownik o identyfikatorze `123` ma uprawnienia do odczytu i zapisu na kanale `456`
-   Wszyscy użytkownicy, których ID pasuje do wyrażenia regularnego `user-*`, mogą czytać z dowolnego kanału, którego ID pasuje do wyrażenia regularnego `global-*`.
-   Użytkownik o identyfikatorze `123` ma uprawnienia do aktualizacji metadanych kanału (tj. kontekstu aplikacji).

Pełna lista uprawnień znajduje się w dokumentacji na stronie [https://www.pubnub.com/docs/general/security/access-control#permissions](https://www.pubnub.com/docs/general/security/access-control#permissions?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl).

Menedżer dostępu PubNub jest oparty na tokenach, a najłatwiejszym sposobem na jego opisanie jest przejście przez przepływ autoryzacji pokazany w [dokumentacji](https://www.pubnub.com/docs/general/security/access-control?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl) i zapewnienie dodatkowego kontekstu, w jaki sposób ten przepływ odnosi się do moderacji:

![Access Manager workflow](https://www.pubnub.com/cdn/3prze68gbwl1/6VXlbbCqQz8X8GKG1yU7Xc/a8597a87f1bf8a701737935141b45918/pam-v3-authorization-flow-d3c28108b6948645d029e42097d1b30e.png "How-to - BizOps Workspace Secure Chat - Image 01")

1.  **Próba logowania**. Klient uwierzytelnia się na serwerze, aby zalogować użytkowników do aplikacji. Prawdopodobnie odbywa się to za pośrednictwem dostawcy tożsamości; po tym kroku serwer ma pewność, że rozmawia z zarejestrowanym użytkownikiem aplikacji i kim on jest. Klient żąda tokenu uwierzytelniania PubNub Access Manager w ramach swojej inicjalizacji.
2.  **Żądanie przyznania uprawnień**. Serwer obsługuje żądanie klienta o token, wywołując interfejs API SDK "[grantToken()](https://www.pubnub.com/docs/sdks/javascript/api-reference/access-manager#grant-token?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl)". Kilka punktów do odnotowania na temat tego API: Można go wywołać tylko za pomocą **tajnego klucza** PubNub, a zatem można go wywołać tylko z serwera; jest dostępny dla wszystkich naszych zestawów SDK po stronie serwera; i to API zaakceptuje obiekty JSON w celu zdefiniowania zasobów i uprawnień, które definiują dostęp użytkownika (użytkowników).
3.  Zwrócony**token**. PubNub przyznaje żądane uprawnienia żądanym użytkownikom i zwraca token uwierzytelniający do serwera.
4.  Token**przekazany**. Następnie serwer zwraca token uwierzytelniający do pierwotnego klienta wywołującego.
5.  **Token ustaw**iony. Klient może określić ten token uwierzytelniający podczas inicjalizacji lub w dowolnym momencie cyklu życia aplikacji za pomocą metody [setToken()](https://www.pubnub.com/docs/sdks/javascript/api-reference/access-manager#set-token?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl). Możliwość aktualizacji tokena w dowolnym momencie jest niezbędna, ponieważ tokeny wygasają, ale klient będzie również musiał zażądać nowego tokena, jeśli Channel Monitor zaktualizuje swoje uprawnienia (tj. zostanie wyciszony lub zbanowany).
6.  **Autoryzowane żądanie API**. Wszelkie kolejne połączenia z PubNub będą teraz uznawane za autoryzowane. PubNub zezwoli lub odrzuci każde żądanie API w oparciu o uprawnienia przyznane w kroku 2 i ważność tokena klienta.

Jak wygląda bezpieczne rozwiązanie moderacyjne?
-----------------------------------------------

Pod koniec [poprzedniego](https://www.pubnub.com/how-to/monitor-and-moderate-conversations-with-bizops-workspace/?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl) artykułu pokazałem demo tego, jak wyglądałoby wyciszanie lub banowanie po stronie klienta. Chat SDK zawiera [zdarzenia moderacji](https://www.pubnub.com/docs/chat/chat-sdk/build/features/users/moderation#listen-to-moderation-events?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl), które informują klienta o tym, czy został wyciszony lub zbanowany; jednak poza aktualizacją interfejsu użytkownika nie uniemożliwia to **klientowi dalszego wysyłania wiadomości, mimo że został wyciszony/zbanowany**. Aby bezpiecznie wyciszyć lub zablokować klienta, należy cofnąć jego istniejące uprawnienia Menedżera dostępu i przyznać mu nowe, aby odzwierciedlić jego nowy status wyciszenia lub zablokowania.

Rozważmy następujący scenariusz, w którym użytkownik został wyciszony z kanału "musicale":

![Secure chat sequence diagram](https://www.pubnub.com/cdn/3prze68gbwl1/2CHx5c361f7BWbrHAbI99t/220aebf2f99c53ba43b91053a2902d28/Secure_chat_sequence_diagram.png "How-to - BizOps Workspace Secure Chat - Image 02")

1.  Użytkownik ma dostęp do dwóch kanałów, "filmy" i "musicale", ale administrator chce wyciszyć go tylko z kanału "musicale".
2.  Moderator wycisza użytkownika za pomocą Monitora kanałów. Pod przykrywką jest to wywołanie interfejsu API "[setRestrictions()](https://www.pubnub.com/docs/chat/chat-sdk/build/features/users/moderation#method-signature-1?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl)
3.  Aplikacja serwerowa otrzymuje powiadomienie o "wyciszeniu" za pośrednictwem [zdarzenia moderacji](https://www.pubnub.com/docs/chat/chat-sdk/build/features/users/moderation#listen-to-moderation-events?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl) i [unieważnia](https://www.pubnub.com/docs/sdks/javascript/api-reference/access-manager#revoke-token?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl) istniejący token dostępu użytkownika.
4.  Aplikacja kliencka otrzymuje powiadomienie "mute" powiązane z kanałem "musicals" poprzez zdarzenie [moderacji](https://www.pubnub.com/docs/chat/chat-sdk/build/features/users/moderation#listen-to-moderation-events?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl).
5.  Aplikacja aktualizuje swój interfejs użytkownika, aby zapobiec wysyłaniu większej liczby wiadomości. Użytkownik może obejść tę zmianę interfejsu użytkownika, modyfikując JavaScript strony, ale każda próba wysłania wiadomości zakończy się niepowodzeniem, ponieważ jego token uwierzytelniający został cofnięty.
6.  Aplikacja żąda nowego tokenu uwierzytelniania z serwera, jak opisano w sekcji Menedżer dostępu powyżej. Nowo przyznany token będzie odzwierciedlał nowe uprawnienia użytkownika, w tym tylko dostęp "do odczytu" do kanału "musicale".

W [poprzednim](https://www.pubnub.com/how-to/monitor-and-moderate-conversations-with-bizops-workspace/?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl) artykule opisano "Składniki rozwiązania do moderacji" i wymieniono interfejsy API dostępne zarówno dla klienta, jak i serwera, korzystając z poniższej grafiki. Interfejsy API omówione w powyższych krokach są również pokazane na tej grafice.

![Table showing components of a chat moderation solution](https://www.pubnub.com/cdn/3prze68gbwl1/50rOVZsxRPDbpl2azfmGCx/76842024f05c290e76ef9169f89994ad/moderation.png "How-to - BizOps Workspace Channel Monitor - Image 09")

Przykładowa aplikacja Chat SDK
------------------------------

Ten sam zapracowany zespół inżynierów odpowiedzialny za rozwój Channel Monitor i Chat SDK stworzył również przykładową aplikację napisaną w React Native, która korzysta z Chat SDK.

Próbka pokazuje możliwości SDK i najlepsze praktyki tworzenia realistycznej i w pełni funkcjonalnej aplikacji czatu przy użyciu PubNub. Jest to open source i część tego samego repozytorium GitHub, które zawiera Chat SDK pod [/samples/react-native-group-chat](https://github.com/pubnub/js-chat/tree/master/samples/react-native-group-chat).

![Sample app running on iOS and Android](https://www.pubnub.com/cdn/3prze68gbwl1/3LN1pHPw77sxb284B3ae3d/51cccbcd3b841bcb5dad1d3a3f0ced49/temp-chat-sdk-mobile-demo.png "How-to - BizOps Workspace Channel Monitor - Image 02")

Ta aplikacja została niedawno zaktualizowana, aby żądać tokenów z serwera Access Manager i żądać nowego tokena, gdy uprawnienia użytkownika ulegną zmianie, tj. zostaną zablokowane lub wyciszone z kanałów. To ulepszenie zostało wprowadzone od czasu napisania [poprzedniego artykułu](https://www.pubnub.com/how-to/monitor-and-moderate-conversations-with-bizops-workspace/?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl), więc pamiętaj, aby pobrać najnowsze źródło z [GitHub](https://github.com/pubnub/js-chat/tree/master/samples/react-native-group-chat). W chwili pisania tego tekstu najnowszy identyfikator zatwierdzenia git to [ae9dfa0](https://github.com/pubnub/js-chat/tree/ae9dfa0/samples/react-native-group-chat)

Bezpieczne wyciszanie i banowanie użytkowników: Demo przy użyciu przykładowej aplikacji
---------------------------------------------------------------------------------------

W tej sekcji opisano, jak uruchomić nasze kompleksowe demo, pokazujące bezpieczną moderację zarówno z perspektywy klienta, jak i serwera.

### Tworzenie zestawu kluczy PubNub

Zalecam utworzenie nowego zestawu kluczy PubNub, aby uruchomić to demo w następujący sposób:

1.  Zaloguj się do [portalu administratora](https://admin.pubnub.com/?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl) i utwórz nową aplikację lub nowy zestaw kluczy w istniejącej aplikacji. W razie potrzeby możesz znaleźć instrukcje krok po kroku w naszym [Jak utworzyć klucze portalu administra](https://www.pubnub.com/how-to/admin-portal-create-keys/?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl)cyjnego.
2.  Na stronie zestawów kluczy włącz następujące opcje konfiguracji. Możesz zaakceptować ustawienia domyślne, chyba że określono inaczej:

-   [App Context](https://www.pubnub.com/docs/general/metadata/channel-metadata?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl). Przechowuje on metadane o kanałach i użytkownikach i został opisany w poprzednim artykule na temat["Zarządzania użytkownikami i kanałami](https://pubnub.com/how-to/manage-users-and-channels-with-bizops-workspace/?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl)". Włącz także zdarzenia `metadanych` `użytkownika`, `zdarzenia metadanych kanału` i `zdarzenia członkostwa`.
-   [Trwałość wiadomości](https://www.pubnub.com/docs/general/storage?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl). Przechowuje historię wiadomości w PubNub, dzięki czemu administrator może przeglądać i edytować konwersacje.
-   [Menedżer](https://www.pubnub.com/docs/general/security/access-control?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl) dostępu. Zapobiega nieautoryzowanemu dostępowi do danych i jest wymagany do stworzenia bezpiecznego rozwiązania moderacji.
-   [Obecność](https://www.pubnub.com/docs/general/presence/overview?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl). Służy do śledzenia, czy użytkownik jest online czy offline.

Zapisz zmiany.

W kolejnych krokach potrzebne będą klucze `Publish Key`, `Subscribe Key` i `Secret Key`.

### Tworzenie przykładowej aplikacji

Jak opisano wcześniej, aplikacja Chat SDK Sample jest wieloplatformową aplikacją kliencką napisaną w React Native przy użyciu frameworka Expo.

Sklonuj i zbuduj przykładową aplikację, postępując zgodnie z instrukcjami podanymi w [readme aplikacji](https://github.com/pubnub/js-chat/tree/ae9dfa0/samples/react-native-group-chat#readme). W szczególności upewnij się, że masz zainstalowane wymagania wstępne, w tym yarn i Node.js. ReadMe mówi o korzystaniu z XCode i iOS, ale można również uruchomić aplikację na emulatorze Androida. W chwili pisania tego tekstu najnowszy identyfikator zatwierdzenia git to [ae9dfa0](https://github.com/pubnub/js-chat/tree/ae9dfa0/samples/react-native-group-chat)

Podając klucze Pub/Sub, użyj kluczy wygenerowanych w poprzednim kroku. Jeśli nie umieścisz kluczy w pliku `.env`, aplikacja będzie domyślnie korzystać z niektórych kluczy `demonstracyjnych`; możesz wyłączyć tę logikę na stronie [https://github.com/pubnub/js-chat/blob/ae9dfa0/samples/react-native-group-chat/App.tsx#L60](https://github.com/pubnub/js-chat/blob/ae9dfa0/samples/react-native-group-chat/App.tsx#L60), aby uniknąć nieporozumień.

Uruchom aplikację. ReadMe instruuje, aby uruchomić yarn `ios`, ale można również uruchomić `yarn android` lub `yarn run start`, z których ten ostatni daje interaktywne menu.

Po zalogowaniu w konsoli powinno pojawić się następujące ostrzeżenie:

![Failed log message](https://www.pubnub.com/cdn/3prze68gbwl1/7jc5aAT6ohAvQdvszqUerY/36987e68ee4386813332e69c0d1d6ab0/Failed_to_obtain_auth_token.png "How-to - BizOps Workspace Secure Chat - Image ")

Dzieje się tak, ponieważ klient nie połączył się z serwerem Access Manager, więc zbudujmy go.

### Tworzenie przykładowego serwera Access Manager

Sample Access Manager Server można znaleźć pod adresem [https://github.com/pubnub/js-chat/tree/master/samples/access-manager-api,](https://github.com/pubnub/js-chat/tree/master/samples/access-manager-api) jest to ten sam monorepo, co aplikacja kliencka omówiona wcześniej.

Otwórz plik `src/chatsdk.service.` ts w wybranym edytorze i wypełnij pola `publishKey`, `subscribeKey` i `secretKey`. Klucze publish i subscribe muszą być zgodne z tymi, których użyto do utworzenia aplikacji klienckiej, a klucz tajny jest dostępny na stronie zestawu kluczy dla aplikacji w [portalu administratora](https://admin.pubnub.com?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl)

Z katalogu `REPO/samples/access-manager-api` uruchom polecenie `yarn run start`, aby uruchomić serwer Access Manager, a powinieneś zobaczyć coś takiego jak poniżej:

![Sample Access Manager Server output](https://www.pubnub.com/cdn/3prze68gbwl1/7vrAN5Y2vD6yQKucs25iHy/b8fb34f5ab9c1e75a23606c2b980cea3/auth_token_server.png "How-to - BizOps Workspace Secure Chat - Image 04")

Aby zobaczyć, co robi serwer Access Manager, spójrz na `app.service.ts`. Zobaczysz struktury uprawnień wygenerowane dla żądającego użytkownika i wywołanie `chat.sdk.grantToken()` w celu zastosowania tych uprawnień, zwracając wygenerowany klucz authKey do klienta wywołującego.

Są to uprawnienia wymagane przez aplikację demonstracyjną, ale Twoja aplikacja prawdopodobnie będzie potrzebować innych uprawnień. Możesz użyć tego dostarczonego zestawu reguł jako szablonu początkowego, ale podczas tworzenia serwera Access Manager dla swojej aplikacji skonsultuj się z [https://www.pubnub.com/docs/chat/chat-sdk/build/features/users/permissions](https://www.pubnub.com/docs/chat/chat-sdk/build/features/users/permissions?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl), aby dokładnie zrozumieć, jakie uprawnienia są wymagane przez poszczególne funkcje Chat SDK.

Uruchom ponownie aplikację demonstracyjną klienta i powinieneś być teraz w stanie zalogować się bez błędów. Będziesz wiedział, że wszystko się powiodło, gdy otrzymasz toast "Authkey refreshed".

![AuthKey refreshed](https://www.pubnub.com/cdn/3prze68gbwl1/6DXY3wSm18YpJ4K08iwoJ4/f5db7a28ca9efcfcff54ddfb36369729/authkey_refreshed.png "How-to - BizOps Workspace Secure Chat - Image 05")

Zainicjuj rozmowę między dwoma klientami.

![Initiate a conversation between two clients](https://www.pubnub.com/cdn/3prze68gbwl1/1VS5T3rvnRYCDK6ITsSVZG/63901926e457c4d9cdf1bea009921bb1/In_Conversation.png "How-to - BizOps Workspace Secure Chat - Image 06")

### Wyciszanie i banowanie użytkowników za pomocą Monitora kanałów

**Ważne:** Jeśli wcześniej nie zainicjowałeś konwersacji między dwoma klientami, zrób to teraz. Kanały są tworzone dynamicznie przez aplikację demonstracyjną, więc będą wyświetlane w Channel Monitor dopiero po rozpoczęciu czatu.

Należy pamiętać, że wszelkie aktualizacje interfejsu użytkownika pokazane poniżej, takie jak baner "auth key refreshed" lub modal "banned user", są częścią aplikacji demonstracyjnej - Twoja aplikacja wyświetli te informacje użytkownikowi za pośrednictwem własnego interfejsu użytkownika.

-   Uruchom Channel Monitor, logując się do [portalu administratora](https://admin.pubnub.com/?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl) i wybierając zestaw kluczy użyty dla próbki Access Manager i aplikacji klienckiej.
-   Przejdź do sekcji **BizOps Workspace** w lewym panelu nawigacyjnym i wybierz Channel **Monitor**. Jeśli nie widzisz sekcji **BizOps** Workspace, prawie na pewno musisz zaktualizować swój [plan PubNub](https://www.pubnub.com/pricing/?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl), ale w razie jakichkolwiek problemów [skontaktuj się z naszym działem pomocy technicznej](https://support.pubnub.com/hc/en-us?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl).
-   Zostaniesz poproszony o wybranie kanałów do rozpoczęcia moderacji. Nazwa kanału będzie miała postać `1:1 użytkownik z USER_ID`, gdzie USER\_ID to nazwa użytkownika osoby, która zainicjowała konwersację.
-   Wiadomości na kanale będą wyświetlane w czasie rzeczywistym, w tym poprzednie wiadomości, jeśli w zestawie klawiszy włączona jest funkcja trwałości.

![Initial conversation with channel monitor](https://www.pubnub.com/cdn/3prze68gbwl1/3bjU02EMdQk4dwYcgaAS0d/6dd2b2b1c9b7be3e8fef76ca8306b8db/1._Channel_Monitor.png "How-to - BizOps Workspace Secure Chat - Image 07")

-   Wycisz użytkownika, naciskając przycisk mikrofonu obok wiadomości wysłanej przez tego użytkownika. Na urządzeniu wyciszonego użytkownika pojawi się komunikat informujący, że klucz autoryzacji został odświeżony. Próba wysłania wiadomości jako wyciszony użytkownik spowoduje wyświetlenie okna dialogowego z informacją, że jest to zabronione, ale nie ma to wpływu na niewyciszonego użytkownika.

![Muted user](https://www.pubnub.com/cdn/3prze68gbwl1/1RdO4jGGHDiSiL4Qq7TReO/0d924dae0e07f5b4ac0f5c3ef5dc11cd/2._Muted_User.png "How-to - BizOps Workspace Secure Chat - Image 08")

-   Wyłącz wyciszenie użytkownika, naciskając ponownie przycisk mikrofonu. Na urządzeniu niewyciszonego użytkownika pojawi się komunikat informujący, że klucz autoryzacji został odświeżony i wysyłanie wiadomości będzie teraz możliwe.

![User unmuted](https://www.pubnub.com/cdn/3prze68gbwl1/58g7AQjJ7pRqc3eoV8RB49/428d3ca094f369bc1f4fa592eeb53589/3._Unmuted_User.png "How-to - BizOps Workspace Secure Chat - Image 09")

-   Zbanuj użytkownika, naciskając przycisk bana obok wiadomości wysłanej przez tego użytkownika i podając powód bana. Powód jest tekstem swobodnym, więc możesz podać dowolne istotne informacje. Klucz autoryzacji zostanie odświeżony, a użytkownik powróci do ekranu wyboru czatu w swojej aplikacji.

![User is banned](https://www.pubnub.com/cdn/3prze68gbwl1/5ZaHnr78P2KEkPnb71RbGU/90d13bab4b2e144b0582ec58cdcb7bf0/4._Banned_User.png "How-to - BizOps Workspace Secure Chat - Image 10")

Próba uzyskania dostępu do zablokowanego kanału spowoduje wyświetlenie błędu:

![Banned user error message](https://www.pubnub.com/cdn/3prze68gbwl1/2eyswSTv0uMNS6SedvR0Ea/68c0f54239a1283c7fc56e7a9df765d7/5._Banned_User_error.png "How-to - BizOps Workspace Secure Chat - Image 11")

-   Odblokuj użytkownika, wybierając opcję "Usuń blokadę" w Monitorze kanałów. Klucz autoryzacji zostanie odświeżony. Użytkownik zostanie odbanowany i będzie mógł ponownie uzyskać dostęp do czatu.

![User is unbanned](https://www.pubnub.com/cdn/3prze68gbwl1/3L0k1itC0X4yHApaWxohJU/340c12f4a84503a165f3b98904e0aaa0/6_Unbanned_User_2.png "How-to - BizOps Workspace Secure Chat - Image 12")

Podsumowanie
------------

Opracowanie dowolnej [aplikacji cz](https://www.pubnub.com/solutions/chat/?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl) atu to tylko pierwszy krok. Najtrudniejsze wyzwania pojawiają się po wdrożeniu aplikacji do obsługi rosnącej bazy użytkowników. BizOps Workspace to zestaw narzędzi zaprojektowanych do zarządzania każdym aspektem aplikacji czatu, upraszczając wyzwania po uruchomieniu.

Chociaż w tym artykule skupiliśmy się na bezpiecznym wyciszaniu i banowaniu użytkowników, nadal rozszerzamy funkcje [BizOps Work](https://pubnub.com/docs/bizops-workspace/basics?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl)space. Ten artykuł skupiał się również wyłącznie na Chat SDK, ale Channel Monitor można również [skonfigurować](https://www.pubnub.com/docs/bizops-workspace/basics#configuration?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl) do pracy z dowolnym z naszych SDK.

![Channel monitor configuration](https://www.pubnub.com/cdn/3prze68gbwl1/FYH6PoZLSHGPgvikC9vCd/e74f82e37fbfb7fe6f370594adf1da7f/Channel_Monitor_Configuration.png "How-to - BizOps Workspace Channel Monitor - Image 00")

Jeśli potrzebujesz pomocy lub wsparcia, skontaktuj się z naszym [dedykowanym zespołem wsparcia](https://support.pubnub.com/hc/en-us?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl) lub napisz do naszego zespołu ds. relacji z programistami na adres [devrel@pubnub.com](mailto:devrel@pubnub.com).

Jak PubNub może ci pomóc?
=========================

Ten artykuł został pierwotnie opublikowany na [PubNub.com](https://www.pubnub.com/how-to/securely-moderate-chat-and-users/?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl)

Nasza platforma pomaga programistom tworzyć, dostarczać i zarządzać interaktywnością w czasie rzeczywistym dla aplikacji internetowych, aplikacji mobilnych i urządzeń IoT.

Fundamentem naszej platformy jest największa w branży i najbardziej skalowalna sieć przesyłania wiadomości w czasie rzeczywistym. Dzięki ponad 15 punktom obecności na całym świecie obsługującym 800 milionów aktywnych użytkowników miesięcznie i niezawodności na poziomie 99,999%, nigdy nie będziesz musiał martwić się o przestoje, limity współbieżności lub jakiekolwiek opóźnienia spowodowane skokami ruchu.

Poznaj PubNub
-------------

Sprawdź [Live Tour](https://www.pubnub.com/tour/introduction/?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl), aby zrozumieć podstawowe koncepcje każdej aplikacji opartej na PubNub w mniej niż 5 minut.

Rozpocznij konfigurację
-----------------------

Załóż [konto](https://admin.pubnub.com/signup/?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl) PubNub, aby uzyskać natychmiastowy i bezpłatny dostęp do kluczy PubNub.

Rozpocznij
----------

[Dokumenty](https://www.pubnub.com/docs?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl) PubNub pozwolą Ci rozpocząć pracę, niezależnie od przypadku użycia lub [zestawu SDK](https://www.pubnub.com/docs?utm_source=devto&utm_medium=syndication&utm_campaign=off_domain&utm_content=pl).