2015-07-02 256 views
5

我一直在研究切換到社區支持的授權系統,而不是我已經構建的系統。我犯了重建車輪的錯誤,而不是實施利用最佳實踐的社區驅動系統。但是,我找不到使用JWT而不是身份驗證的授權示例。匿名用戶訪問令牌 - JWT

我接受所有建議。據我所知,JWT和OAuth要求客戶擁有一個現有帳戶,並進行身份驗證才能獲得令牌。但是,我需要我的應用程序中的以下功能。

  • 匿名用戶應該得到一個訪問令牌,並能夠獲取一些資源。我應該能夠識別這些訪客客戶端併爲他們存儲會話數據。
  • Guest用戶應該能夠登錄,然後可能得到一個新的令牌,或者更新他們的訪問級別來請求限制資源和執行操作,這是隻爲會員。

我打算用Laravel 5.1和AngularJS構建這個項目。所有的建議非常感謝。我真的可以在這方面使用一些方向,並且簡單的文檔鏈接就足夠了。

+0

我有同樣的問題。我怎樣才能發出一個有效的令牌,可以從我的API端點獲取某些數據,但只要它們有一個有效的匿名令牌。 – timbrown

+0

我有同樣的問題。您如何爲匿名用戶和用戶授權多租戶應用程序,JWT ... – Leon

+0

與此相同。您至少需要保護您的登錄API!請參閱https://security.stackexchange.com/questions/59411/how-to-protect-against-login-csrf。我正在爲所謂的「社區支持授權系統」而努力。恕我直言,它不存在... –

回答

0

我認爲你可以生成一個匿名訪問令牌無論是從一個隨機的現有用戶或自定義聲明

從現有的隨機用戶:

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

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

或者自定義聲明:

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

您可以從下面的鏈接瞭解詳情:

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