如何限制谁可以获得有效的访问令牌



我开发了一个APIRest服务来使用移动应用程序中的数据。我已经使用了Symfony2捆绑包:FOSOAuthServerBundle、FOSUserBundle和FOSRestBundle,它们都运行良好,但我需要区分管理面板用户和api用户,因为现在如果我尝试从应用程序向管理员进行身份验证,我将获得一个令牌,但我只想获得一个与api用户有效的令牌。

例如,对于下一个用户,我应该获得第二个请求的有效令牌和第一个请求的无效授权响应,但我获得了他们两个的有效令牌:

管理员用户(ROLE_ADMIN)

https://app.myweb.com/oauth/v2/token?username=adminuser&密码=1234&client_id=&client_secret=&grant_type=密码

appuser(ROLE_APP)

https://app.myweb.com/oauth/v2/token?username=appuser&密码=1234&client_id=&client_secret=&grant_type=密码

非常感谢你让我找到了解决这个问题的正确方法,并为我的英语感到抱歉。

来自FOSOAuthServerBundle文档:

https://github.com/FriendsOfSymfony/FOSOAuthServerBundle/blob/master/Resources/doc/index.md#step-5-配置-授权服务器捆绑

创建一个用户提供程序并将其添加到fos_oauth_server配置中:

fos_oauth_server:
    ...
    service:
        user_provider: my_custom_user_provider_service

创建扩展Symfony\Component\Security\Core\User\UserProviderInterface接口的提供程序,并检查用户是否已授予ROLE_APP权限。此处记录:

http://symfony.com/doc/current/cookbook/security/custom_provider.html

相关内容

  • 没有找到相关文章