Tak poprawnie złożyć frontend i backend

0

Cześć jestem na etapie tworzenia banalnej apki dla nauki samego siebie.
Frontend będzie React + Flux backend to Hapi.js
Ale mam dylemat z Authentykacja i póxniejszą authoryzacją.
Mianowicie nie wiem jak zrobić w prosty sposób aby zapewnić Authentykacje korzystając z facebook api + base z hasłem i mailem.
Powinno to być na froncie czy backendzie?
Tylko na froncie to mi jakoś mocno śmierdzi bo nie wiem kim jest klient i zawsze ktoś może się przepiąć i pominąć mojego klienta. Nie wiem jak to powinno wyglądać poprawnie. Z drugiej stroni robienie tylko tego na backendzie nawet nie wiem jak w praktyce to zrobić z czystym REST API też jakoś nie do końca widzę jak to będzie działać.
Możecie coś nakierować?

0

Jak wyobrażasz sobie autoryzację we frontendzie? ;) Jasne, że musi to być na serwerze. Nie znam Hapi, tutaj masz coś więcej: http://hapijs.com/tutorials/auth tutaj coś z OAuth (jeśli autentykację opierasz na fejsie): http://bigeng.io/oauth-authentication-and-session-management-in/

Btw jakiego Fluxa używasz? Jeśli jeszcze nie wybrałeś to polecam Reduxa (różni się mocno od standardowego modelu Fluxa, ale jest ostatnio polecany nawet przez inne projekty, tj. reflux, fluxxor i coś tam jeszcze).

0

pierwszą myślą było wybranie standardowego Fluxa z react routerem.
Dzięki za info odnośnie implementacji fluxa sprawdze.
Hapi jak wszystko co z noda podobne do siebie tylko ze stricte wsparciem pod REST.

0
Wizzie napisał(a):

Jak wyobrażasz sobie autoryzację we frontendzie? ;) Jasne, że musi to być na serwerze.

Nie, nie musi. Autor wspomina o Base Auth za pomocą Facebooka, jeśli dobrze zrozumiałem, a to nie wymaga pisania kodu w backendzie. Wystarczy odpowiednio przesłać credentials ze zmodyfikowanymi nagłówkami pod wskazaną usługę. Inna sprawa, że ma to swoje wady, ale nie wiem na czym zależy autorowi.

0

O jakich wadach mówisz.
Nie wiem co dokładnie chce. Tzn nie jestem pewien.
Końcowy rezultat jest taki że chcę mieć całkowicie odseparowane dwie warstwy + authoryzacje poprzez fejsa + standardowe rozwiązanie z mailem i hasłem.
Ale wydaje mi się że muszę zapewnić logowanie na backendzie a z frontu wybierać tylko przekierowanie na endpoint do logowania z wybrana strategia

0
Mały Kaczor napisał(a):

O jakich wadach mówisz.

Te, które przychodzą mi na myśl:

  • do każdej usługi wymagającej uwierzytelnienia musisz wysłać credentiale - niewygodne na dłuższą metę
  • i co za tym idzie w jakiś sposób je przechowywać w przeglądarce w ramach trwania sesji lub permanentnie (można wykraść, mechanizm jest też podatny na CSRF)
  • hasło kodowane jest w base64, więc dość łatwo je przerobić na plain text

SSL może pomóc, ale nie jestem ekspertem, żeby stwierdzić w jakim stopniu, więc temat pozwolę sobie zostawić. ;)
Base Auth jest ogółem łatwe, ale nie bez powodu duże serwisy odradzają ten sposób na rzecz tokenów.

1 użytkowników online, w tym zalogowanych: 0, gości: 1