NEWS
PAJ GPS mit Node-Red abfragen
-
-
@negalein Ja aber das ist nicht das Objekt der payload. Kannst Du mal das ganze Objekt hier in code tags reinkopieren?
Das ganze Objekt sollte also wenn Du es mit Wert kopieren und hier in CodeTags kopierst auch wie ein Objekt aussehen.
Falls das ALLERDINGS ein STRING ist, dann hast Du die HTTP-Request Node nicht richtig eingestellt.
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
Kannst Du mal das ganze Objekt hier in code tags reinkopieren?
{"error":{"emailError":"Email is not valid."}}
so?
-
@negalein Sehr gut.
Und wenn Du die richtigen Daten eingibst in die Inject Node, dann bekommst Du hoffentlich ein success Objekt. Nun werden wir den Flow verzweigen, in dem wir abfragen, ob Du ein Objekt mit der Eigenschaft success oder error zurückbekommst. Unten hast Du ja schon mal ein success Objekt kopiert.
Also error:{"error":{"emailError":"Email is not valid."}}
Also success:
{ "success": { "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIzOCIsImp0aSI6IjA0NDYzYjMzZGQ0NGM2OTExOTcyOWYwNzk1MGJiNjg2MWZjZWVjMmQwYzNiY2E5ZjQ3Y2U1MjM1YWIzNGM1YWQwOTM3MTNkYmIzODg2MGE5IiwiaWF0IjoxNzIwMjgwOTMwLjIyODE0MiwibmJmIjoxNzIwMjgwOTMwLjIyODE0NSwiZXhwIjoxNzIyODcyOTMwLjE5OTYzOCwic3ViIjoiMjk1MjM0NSIsInNjb3BlcyI6W119.f5oY-BKAoDaxyO-jskPIQdZe3Hy7fK_YRidCRRyKXSZ3TGS0iy5U_21wnkasgQVlTkMk-7Kxvk30CWZx6PdI3bAJypTmXsiQ7j6sLVCNdpjbY6uedCnDoXSP50W8sYLPZy8ws-Z_qXc3s3Ylld2TUeiH-9r-LYImFi1s2jO1Jrk9PSoQp2f7EVuvfZFDRV9izewU0GgsQ7QdT3h5xrxDYvI1vzOfJu8CnltKy20E-w2YBRKVUWVdAKQMyNhLNMJFNFWnJBH5maV5Y5dELoPgjAGwiVKYont0GYLUmsKdy4bFyEZFbguJbuyR4thNKEEzQpZx3hWDbe2_BSyCDSzltw0nywumVTHRYjsHutCL3AcwHxw5AY5WBziPa5mTrXwi4K1aaUPGP7ixmKT3kVR56c2_HHUKOsiFJaodjwG6SIpocMqJJxdIqGfuNAzztmtO4Ck5oMOMp67jP6wjsJJ9MQgxY-lrx5wgpzVJ8hgwsG7cLTKbjPqUKiVZfwUzigzwO3uPurZ7K0jUq1ifCzR1-iYml1CvKeZLYG0ZG5qPDBiPkwMFbpFHLnLsA2fjfU-G9h6klYJyxpC7w5jzrCJ_Iboqs-WVXU2wyUF_syZrPf4PQav3h86ClJInvh9EvREnFQ7Ndzks-QAis7cuFp3vB6XmAf4YVY-55kOrFVrN1Yc", "refresh_token": "def502002ce29ee67844eac2a70befa3a2964f1603076e414fd40a287246c0927f5044f7a7918c06b4d9a3a2296c84dde80810c7bf76afc5a5eb1a7684d949100709172c7b893f8dab518ab564f217a6e3df401f7d1b2e4c7343eb050bfb286f5f0b919f99250e8274f8d9bd5712075dde672b3566d7ad1cbffcf9486ba118532a66c4cf1bb68c4a08b69a05a447848502b51d8e5c65d7d9ff90bcd7af073f53fdc8fb665a7b5ad1776349ddeadf9ef6d7e954d77b44b411e228f1af8fd0ae3ac21de40f505146b7e77f2453346c14340fa895bb05db28bc7ab4514c2f6e24e84245dfdac6b577428259b233a23ab897a232dbc0262965287b9d4e10e5feab0fce5f85b2410b5d2b73b90fa68eda0c155e0107622b55a780d12a1e2533f9b07754d98972acf77c4dc94585b4f5b88b16cdad6fd3ac55c3029abece858f71605b6f0ca4c4793bdcfd87ad05e02d7317f21e84f2e4b1338b9069efdd8ad9aa704c2baf19e6b62d04bf", "expires_in": 2592000, "isAdmin": 0, "userID": 2952345, "routeIcon": "arrow", "Petsevices": 0 } }
Wir werden nun also filtern, dass wir einerseits ein zürückgegebenes Error Objekt anders behandeln als ein Success Objekt.
Zum Filtern oder Aufspalten des Flows bedienen wir uns einer Switch Node - die jenachdem das Nachrichtenobjekt an unterschiedlichen Ausgängen ausgibt.Wir lassen uns also oben das Nachrichtenobjekt ausgeben, wenn die PAYLOAD ein error Objekt enthält, unten wenn es ein success Objekt enhält. Die Debug Node benennen wir dementsprechend einmal error, einmal sucess.
Die switch Node -die das Nachrichtenobjekt an die Ausgänge dirigiert wird wie folgt konfiguriert:
Es wird also die Nachrichteneigenschaft payload untersucht und geschaut, ob das Objekt ein success oder eine error Eigenschaft (bzw. Schlüssel) hat.
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
Wir lassen uns also oben das Nachrichtenobjekt ausgeben, wenn die PAYLOAD ein error Objekt enthält, unten wenn es ein success Objekt enhält. Die Debug Node benennen wir dementsprechend einmal error, einmal sucess.
bei korrekten Daten:
{"success":{"token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIzOCIsImp0aSI6Ijg1ZjBhMTM0ZGU2MWZkMGVjNjY2OTY5ZTEyNjgzZjM1MGFhOTlkZTFlOTQzMmY5NTc0OWM5NWU1OWVkNGYyMDkyNjJhMDQxZDFhOTQwNWRkIiwiaWF0IjoxNzIwMjk5Nzk5LjI4NjI2LCJuYmYiOjE3MjAyOTk3OTkuMjg2MjYyLCJleHAiOjE3MjI4OTE3OTkuMjI1NDIzLCJzdWIiOiIyOTUyMzQ1Iiwic2NvcGVzIjpbXX0.MxmKFobCwVg1mXjZr2Ef9KcQ24ySiM9ldcON7WuI5avsdXKliVdsdmem9fJMtdtv5ruyWZZFaqzsXwG9QhbpwbaycbSuL9GOfjmMtaInmBhULNtWo7F-7F-8k3lwYdabtcZ5n9ov2CFgE4JHPrHDevU6YfbyopHf-IxdQhtTM_mckVTVbJ37y9KxDlo5xYYU9KUvXn05nnYVJa3wubD4dITM5ILXBDtGVGszp5gtjsG7Bse39r_PPVBLfRS36ZUwDA2-VlYP8ItpC5jT5CjgtNN9K7GtrX1xffwS-K3mpYRKJsJwVOzPEp6KUA-VFIykZofwYlt7EXBLgjJfKH5g_Iona2DmQ04Fs9TytU9becauNzLXRzmoqp8Ac-seFIBh4r5UV7AeZKNkK5uHwWNLsSIUJ28UutOYiyN7EsvVvk4fzKynjVHQbSEtcqXYsS5OtfAm_eYZxV-yHQzRT3u1Al79gWZqSrTtcmWHhHOjnXbOcgPH7RA6VddI_8fVRAvGhXemdS5gZnPJ-hVKfDje7g0m9Yvx9yWbwGZsX3r1DBbxZOv_nrOkIyeeIwqNreRxDCAmG4mV-VwjrDdZqqDRW6FrHnn2DHLWpTUcFTOzW9dAOUxuYOtu0rteckw8NOqj07_wiT6YBA7VuWrILB-AOhaeM9tKNrmt-9OYodOtPjM","refresh_token":"def502007fdbf85380c4495c55abba0541ba92bb7fd20723a67e0b2bb34b4c43917310ba3689ba513b281acd109275993b25975e24f2fd0ab19dc2eb4e1311e380a4db3b41570efedd0c9376e563a8f9f54e5feea7c16d33e7e83fb106dc1e22dbed4b3f9c2ad79d602927f6b0ff5d397c31d886681332ee1b514d2de055b7bc28924af7c7198812a5823e44a5eed640d810db9f5199181e3c51ddcbc03b072f77c1f73e261b09dc7eeead1897e894784ccec710bdf2949093296abff49dbf6b4856bbfb9499a8c8166a0e1750f166c5db857a14211d02bcc45dadff9ca89d94f51c646487d3ac833e78b42d089244bca90bc7df755ef2ec1c3f8c93053144971b592e68a7c49d09e48b660e6432d4c4c8e310b0d12fdfe7a9dcee8422968affeab586953ffb7e9b77fc77d41603f8a6d9d8735d9c9b2b5920b7b0b52a77067ff98a14da129dc9b73e7de7dbdce12eb9e800feb7886b7fadb596c7c9d985cfa2f9a9a1fd85f1839f","expires_in":2592000,"isAdmin":0,"userID":1234567,"routeIcon":"arrow","Petsevices":0}}
bei falschen Daten:
{"error":{"emailError":"Email is not valid."}}
-
Wenn Du fertig bist, dann bestätige, dass das Nachrichtenobjekt einmal in der Debug Node mit dem Namen error rauskommt, wenn Du fehlerhafte Daten eingegeben hast und einmal in der Debug Node mit dem Namen success wenn Du korrekte Daten eingegeben hast.
-
@negalein Gut und die kommen auch - wie oben unterstrichen in unterschiedlichen Debug Nodes raus?
Also die switch Node hast Du eingebaut - so wie in meinem Flow zu sehen.
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
wie oben unterstrichen in unterschiedlichen Debug Nodes raus?
gerade gesehn, dass die in
payload
rauskommen. -
@negalein Gut dann sollte also wie unten in meinem Screenshot gepostet - bei Fehler das Nachrichtenobjekt in der Debug Node mit Namen error und bei erfolgreicher Anmeldung in der Debug Node mit Namen success rauskommen, wie hier abgebildet.
Schaut das bei Dir genauso aus?
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
Schaut das bei Dir genauso aus?
Nein, kommt immer in der Node
Payload
raus. -
@negalein Da kommt es auch raus, kannst Du einfach diese Debug Node deaktivieren, in dem Du die Schaltfläche drückst?
Das Nachrichtenobjekt wird immer von einer Node zur Nächsten weitergegeben. Wenn es hinten nicht ankommt, dann verschluckt eine Node das Nachrichtenobjekt und dann muss man den Fehler suchen.
Wenn ich also alle Debug Nodes vorher deaktiviere, dann seh ich das Nachrichtenobjekt nur noch in einer der letzten beiden Nodes:
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
Wenn es hinten nicht ankommt, dann verschluckt eine Node das Nachrichtenobjekt und dann muss man den Fehler suchen.
Hab jetzt die Nodes
gesamtes Nachrichtenobjekt
&Payload
deaktiviert.Da kommt hinten nichts an.
-
@negalein Ja aus Fehlern lernt man,
Du hast den Schlüssel falsch geschrieben. - Am Besten auch den Namen der Debug Node korrigieren.
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
Ja aus Fehlern lernt man,
definitiv
was ein vergessenes Zeichen nur ausmacht
-
@negalein Super aber wir kommen weiter. Nun werden wir also mal an dem Success Ast weitermachen und wir brauchen ja das Token für die Authentifizierung. Also kopieren wir mal den Pfad zum Token aus dem Nachrichtenobjekt raus. Das ist die Schaltfläche davor.
Also mit der Maus - auf die Nachrichteneigenschaft des Tokens gehen und den Pfad rauskopieren und hier wieder in CodeTags einstellen bitte: -
@mickym sagte in PAJ GPS mit Node-Red abfragen:
und hier wieder in CodeTags einstellen bitte:
payload.success.token
-
@negalein Sehr gut - wie werden diesen Pfad gleich brauchen. Wir werden jetzt in den Flow eine neue Nachrichteneigenschaft einführen.
Nun noch etwas Theorie:
https://swagger.io/docs/specification/authentication/bearer-authentication/
Hier siehst, dass Du bei zukünftigen http Aufrufen im Header in einer Eigenschaft Authiorization, den String "Bearer" und das Token mitgeben müssen.
Dazu werden wir mit einer ChangeNode eine Eigenschaft auth erstellen, die den String "Bearer " und aus der Nachricht das Token extrahieren:
Achte darauf als Datentyp - JSONATA zu verwenden.
Anschließend hängst wieder eine Debug Node an, nennst diese auth und lässt Dir die Nachrichteneigenschaften auth ausgeben.
Die Nachrichteneigenschaft auth, sollte dann einen String ausgeben mit "Bearer ....." und Deinem Token.
-
-
@negalein Sehr gut - und diese Node hängst Du nun auch an den success Ausgang also an den untern Ausgang der switch Node und dann die entsprechenden Debug Node ausgeben.
-