2015-07-02 36 views
5

Prowadzę badania, aby przejść do systemu autoryzacji obsługiwanego przez społeczność, a nie tego, który sam zbudowałem. Popełniłem błąd polegający na przebudowie koła, zamiast wdrożyć system oparty na społeczności, który wykorzystuje najlepsze praktyki. Jednak nie mogłem znaleźć żadnego przykładu autoryzacji z JWT zamiast uwierzytelniania.Token dostępu dla anonimowych użytkowników - JWT

Jestem otwarty na wszelkie sugestie. O ile mogę znaleźć, JWT i OAuth wymagają od klientów posiadania istniejącego konta i uwierzytelnienia w celu otrzymania tokena. Jednak potrzebuję poniższych funkcji w mojej aplikacji.

  • Anonimowi użytkownicy powinni uzyskać token dostępu i mieć możliwość pobierania niektórych zasobów. Powinienem być w stanie rozpoznać tych klientów gości i przechowywać dla nich dane sesji.
  • Użytkownicy-goście powinni być w stanie zalogować się, a następnie uzyskać nowy token lub zaktualizować swój poziom dostępu, aby zażądać zastrzeżonych zasobów i wykonywać operacje tylko dla członków.

Mam zamiar zbudować ten projekt z Laravel 5.1 i AngularJS. Wszystkie sugestie są bardzo mile widziane. Naprawdę mógłbym użyć pewnych wskazówek na ten temat i wystarczyłyby proste linki do dokumentacji.

+0

Mam to samo pytanie. Jak mogę wydać poprawny token, który może pobierać określone dane z moich punktów końcowych API, ale tylko tak długo, jak mają ważny token anonimowy. – timbrown

+0

Mam to samo pytanie. W jaki sposób autoryzujesz aplikację dla wielu dzierżawców zarówno dla anonimowych użytkowników, jak i dla użytkowników, z JWT ... – Leon

+0

tutaj. Musisz chronić przynajmniej swój interfejs API do logowania! Zobacz https://security.stackexchange.com/questions/59411/how-to-protect-against-login-csrf. Walczę z rzekomym "systemem autoryzacji społeczności". IMHO to nie istnieje ... –

Odpowiedz

0

myślę, że można generować anonimowego dostępu żeton albo z losowym istniejącego użytkownika lub ze zwyczaju twierdzi

z istniejącego użytkownika losowej:

// grab some user 
$user = User::first(); 

$token = JWTAuth::fromUser($user); 

lub z niestandardowych Zastrzeżeń:

$customClaims = ['foo' => 'bar', 'baz' => 'bob']; 
$payload = JWTFactory::make($customClaims); 
$token = JWTAuth::encode($payload); 

Więcej szczegółowych informacji można uzyskać pod następującym linkiem:

https://github.com/tymondesigns/jwt-auth/wiki/Creating-Tokens