Pole danych logowania
Ta funkcja zostanie wkrótce wycofana. Więcej informacji o migracji znajdziesz tutaj.
Pole credentials pozwala łatwo przechowywać i zarządzać zestawem profili w przepisie integracji. Przydaje się w wielu sytuacjach, na przykład gdy chcesz:
- Przechowywać co najmniej jeden profil uwierzytelniania bez samodzielnego tworzenia odpowiedniej logiki
- Bezpiecznie zarządzać danymi logowania wielu użytkowników korzystających ze wspólnego konta
Implementacja
Kreator zdań
- Dodaj lub otwórz funkcję Integration for sentence builder.
- Otwórz kartę Typy pól (Field Types).
- Kliknij Utwórz nowe (Create new), aby utworzyć typ pola.
- Wybierz Dane logowania (Credentials) jako typ pola.
- Dodaj zdalne opcje pola, a następnie dostosuj jego nazwę i opis.
- Kliknij Zapisz (Save).
monday workflows
- Dodaj funkcję Custom field for monday workflows.
- Wybierz Dane logowania jako typ schematu.
- Skonfiguruj zdalne opcje i zależności.
- Kliknij Zapisz.
Samouczek wideo - Integration for sentence builder
Obejrzyj ten film, aby dowiedzieć się, jak dodać pole danych logowania do funkcji aplikacji integracyjnej:
Informacje
Pole danych logowania wymaga trzech różnych adresów URL, na które wysyłane są żądania, gdy użytkownik korzysta z komponentu wyboru danych logowania w interfejsie:
- Adres URL danych logowania - zwraca listę danych logowania.
- Adres URL autoryzacji - adres przekierowania, który umożliwia dodanie nowych danych logowania.
- Adres URL usuwania danych logowania - usuwa określone dane logowania.
Wybrana wartość danych logowania zostanie następnie wysłana do aplikacji podczas wykonywania odpowiedniego bloku (czyli uruchomienia niestandardowej akcji lub subskrypcji wyzwalacza).
🚧 Zwracaj identyfikatory danych logowania, a nie prawdziwe tokeny API
Pole danych logowania powinno zwracać identyfikatory, a nie tokeny użytkowników. Przechowuj tokeny w zaszyfrowanym magazynie, takim jak monday secure storage, i wyszukuj je w czasie działania aplikacji na podstawie identyfikatora.
1. Adres URL danych logowania
Adres URL danych logowania to punkt końcowy, który zwraca listę danych logowania. Gdy użytkownik otworzy pole danych logowania, monday wyśle na ten adres żądanie POST z pustym treścią. Możesz dekodować nagłówek autoryzacji, aby uzyskać kontekst żądania.
router.post("/credentials/get", async function getCredentials(req, res) {
return res.status(200).send([
{ title: "User 1 login", value: "abc1234" },
{ title: "User 2 login", value: "bcd2345" },
]);
});
[
{
"title": "Dipro (Admin)",
"value": "salesforce:"
},
{
"title": "Rachel (Admin)",
"value": "2222"
}
]
2. Adres URL autoryzacji
Adres URL autoryzacji to adres przekierowania, który umożliwia dodanie nowych danych logowania do listy. monday przekieruje użytkownika pod ten adres, gdy kliknie Użyj innego konta (Use another account) w interfejsie.
W parametrach zapytania adresu URL znajdzie się token JWT zawierający backToUrl i shortLivedToken. Możesz użyć shortLivedToken, aby wysyłać żądania do API monday, pobierać informacje o profilu użytkownika itp. Token jest ważny tylko przez pięć minut. Użyj backToUrl, aby przekierować użytkownika na stronę konfiguracji zdania.
router.get("/credentials/create", async function addCredentials(req, res) {
// verify and decode token data
const tokenPayload = jwt.verify(
req.query.token,
process.env.MONDAY_SIGNING_SECRET,
);
// add authentication steps here (eg OAuth2, etc)
console.log({ tokenPayload });
// once finished, redirect to the back to URL
return res.redirect(tokenPayload.backToUrl);
});
{
accountId: 1800028,
userId: 4000089,
boardId: 6440001771,
backToUrl:
"https://myaccount.monday.com/boards/1111/app_automations/2222?nodeId=2&fieldKey=account",
recipeId: 30000047,
integrationId: "327000608",
aud: "https://myapptunnel.apps-tunnel.monday.app/credentials/create",
exp: 1723137005,
shortLivedToken:
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzaG9ydExpdmVkIjp0cnVlLCJ1aWQiOjQwMTI2ODksImV4cCI6MTcyMzEzNzAwNSwiaWF0IjoxNzIzMTM2NzA1fQ.tYUTMOfZd72-HUYgverehC0lDs_E8P-01Gfd-yoxh-M",
iat: 1723136705,
}
3. Adres URL usuwania danych logowania
Adres URL usuwania danych logowania to punkt końcowy, który usuwa dane logowania. monday wyśle na ten adres żądanie POST, gdy użytkownik kliknie ikonę usuwania obok wybranych danych logowania. Treść żądania będzie zawierać identyfikator danych logowania do usunięcia.
router.post("/credentials/delete", async function deleteCredentials(req, res) {
console.log("hit");
// extract credential ID
const id = req.body.payload.credentialId;
// delete the credential from DB
const success = removeCredentialFromDatabase(id);
// return success
if (success) {
return res.status(200).send();
}
});
{
payload: {
credentialsId: "bcd2345";
}
}
Przykładowe żądanie
Podczas działania integracji pole danych logowania zostanie wysłane do aplikacji jako ciąg znaków. Możesz go użyć, aby wyszukać odpowiednie dane logowania w bazie danych.
{
"payload": {
"blockKind": "action",
"credentialsValues": {},
"inboundFieldValues": {
"login": "abc1234"
},
"inputFields": {
"login": "abc1234"
},
"recipeId": 629186,
"integrationId": 398515811
},
"runtimeMetadata": {
"actionUuid": "6b68c693284f082e506361b1b5430955",
"triggerUuid": "176d9c746aac92c59cce735b949daec5"
}
}
