我一直在研究切换到社区支持的授权系统,而不是我建立的授权系统。我犯了重建轮子的错误,而不是实施利用最佳实践的社区驱动系统。但是,我无法通过JWT而不是身份验证找到任何授权示例。
我对所有建议持开放态度。据我所知,JWT和OAuth要求客户拥有现有帐户,并进行身份验证以接收令牌。但是,我需要在我的应用程序中使用以下功能。
我将使用Laravel 5.1和AngularJS构建此项目。非常感谢所有建议。我真的可以在这方面使用一些方向,简单的文档链接就足够了。
答案 0 :(得分:1)
我当然理解您描述的用例 - 但我认为匿名令牌实际上并没有增加任何安全性。这是因为完全匿名的用户将能够在不首先识别自己的情况下请求匿名令牌(否则它不会是匿名的)。因此 - 该令牌必须被假定为您的应用程序的任何和所有用户(包括那些有恶意的用户)
虽然我不熟悉 Laravel - 实现这种功能的一般方法可能是这样的:
authenticated
端点和 anonymous
端点之间创建划分,需要用户会话中存在有效的访问令牌才能检索/发送数据到 authenticated
端点authenticated
端点时拥有访问权限答案 1 :(得分: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