Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Client rest - nadawanie dostępu
Kishin
post
Post #1





Grupa: Zarejestrowani
Postów: 148
Pomógł: 17
Dołączył: 20.12.2011

Ostrzeżenie: (0%)
-----


Witam,

Mam takie pytanie, pisze sobie clienta do RESTa, mam już w sumie wszystko gotowe natomiast chciałbym mieć możliwość w jakis sposób ograniczać użytkownikowi dostęp
do poszczególnych metod.

Napisałem coś takiego ale mam wątpliwości czy coś takiego zachowuje sie w jakichkolwiek standardach, ma ktoś jakieś inne propozycje jak to zrobić?

  1.  
  2. function checkAcces($method)
  3. {
  4. $allowed=array('metoda1','metoda2','metoda3');
  5.  
  6. if(!in_array($method,$allowed))
  7. throw new Exception('brak dostępu do metody lub błędna metoda');
  8.  
  9. return 'ok';
  10.  
  11.  
  12. }
  13.  


----

No panowanie i panie, nikt nie pomoże? (IMG:style_emoticons/default/wink.gif)


Ten post edytował Kishin 5.12.2016, 11:46:36
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Teraz dość mocno pcha się w JWT (Json Web Token)
https://www.sitepoint.com/php-authorization...son-web-tokens/
Go to the top of the page
+Quote Post
kayman
post
Post #3





Grupa: Zarejestrowani
Postów: 556
Pomógł: 40
Dołączył: 20.07.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


to raczej wygląda na próbę stworzenie serwera a nie klienta

serwer restowy ma określoną strukturę powiązaną z request_method więc na imo na początku tym się różnicuje i do tego dopina akcje

POST -> metody do post
GET -> metody do get
PUT -> metody do put
etc

Ten post edytował kayman 5.12.2016, 13:26:57
Go to the top of the page
+Quote Post
Kishin
post
Post #4





Grupa: Zarejestrowani
Postów: 148
Pomógł: 17
Dołączył: 20.12.2011

Ostrzeżenie: (0%)
-----


Cytat(kayman @ 5.12.2016, 12:59:50 ) *
to raczej wygląda na próbę stworzenie serwera a nie klienta

serwer restowy ma określoną strukturę powiązaną z request_method więc na imo na początku tym się różnicuje i do tego dopina akcje

POST -> metody do post
GET -> metody do get
PUT -> metody do put
etc


Wiem ,że jest podział na request_method, ale nie widze za bardzo powiązania Twojej uwagi z moim pytaniem.

Na przykładzie:

mam sobie 3 metody, i chce żeby uzytkownik mógł korzystać tylko z metody_2.

to że na tej metodzie moge wykonywać różne żądania czyli post get put itp póki co mnie nie interesuje, chce pozwolić użytkownikowi uzywać wszystkiego powiązanego z tą nazwą metody.

Go to the top of the page
+Quote Post
kayman
post
Post #5





Grupa: Zarejestrowani
Postów: 556
Pomógł: 40
Dołączył: 20.07.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


ja sobie rest wyobrażam mniej więcej tak -> https://spring.io/understanding/REST

więc w rest nie mam jak przypiąć metody należącej do GET->pobierz do requesta POST->dodaj bo co innego z założenia robi

ale nie trzeba przecież stosować czystego rest

można zrobić serwer w którym GETem się pobiera a POSTem dodaje/modyfikuje/usuwa, tu bardzo łatwo ograniczyć dostęp na "tylko do odczytu" czy tylko dla innych akcji

do tego jak to pisał Python + token lub jakaś odpowiednik sesji po autoryzacji
Go to the top of the page
+Quote Post
Kishin
post
Post #6





Grupa: Zarejestrowani
Postów: 148
Pomógł: 17
Dołączył: 20.12.2011

Ostrzeżenie: (0%)
-----


Ja nie tworze serwer tylko client.

Ok to jeszcze inaczej:

Mam sobie metody api/books, api/personel

get api/books ->pobiera dane o ksiazkach

post api/books ->dodaje ksiazki

get api/personel->pobiera dane o pracownikach

post api/personel->dodaje pracownika

No i teraz chce komuś dać dostęp do metody api/books, robiąc to bedzie miał z automatu dostęp do pobierania i dodawania.

Na ta chwile myślałem żeby za każdym razem poprostu dodawać metode do klasy

  1. public function books(array $post)
  2. {
  3. return $this->call(self::API_URL . 'books', $post);
  4. }
  5.  


i tak za każdym razem przy dodawaniu nowego dostępu, ale gdy będzie sporo metod to zrobi sie to kłopotliwe i nieczytelne

Ten post edytował Kishin 5.12.2016, 14:36:05
Go to the top of the page
+Quote Post
kayman
post
Post #7





Grupa: Zarejestrowani
Postów: 556
Pomógł: 40
Dołączył: 20.07.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


to trzeba było od razu napisać że robisz przejściówkę między klientem a api (IMG:style_emoticons/default/smile.gif)

mimo wszystko postąpił bym podobnie ale może inni mają lepsze pomysły
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 12:17