use*_*651 6 symfony oauth-2.0 fosuserbundle fosrestbundle
我试着去创建一个基于服务器的oauth2 FOSOauthServerBundle,FOSRestBundle和FOSUserBundle.我创建了一个演示应用程序来测试我的oauth-server,它无法通过GET reguest接收数据
(收到401错误'error ="access_denied",error_description ="需要OAuth2身份验证"'),
尽管用户已通过身份验证且客户端已正确接收访问令牌.
我应该如何实现api控制器,以便oauth2执行身份验证过程?
此外,我想看看基于这些捆绑包的真实工作oauth服务器示例,以便我能够检查我的应用程序.
我的security.yml:
jms_security_extra:
secure_all_services: false
expressions: true
security:
acl:
connection: default
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
providers:
in_memory:
memory:
users:
user: { password: userpass, roles: [ 'ROLE_USER' ] }
admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }
fos_userbundle:
id: fos_user.user_provider.username
encoders:
FOS\UserBundle\Model\UserInterface: sha512
Symfony\Component\Security\Core\User\User: plaintext
firewalls:
api:
pattern: ^/api
fos_oauth: true
stateless: true
oauth_authorize:
pattern: ^/oauth/v2/auth
form_login:
provider: fos_userbundle
check_path: /oauth/v2/auth_login_check
login_path: /oauth/v2/auth_login
use_referer: true
anonymous: true
oauth_token:
pattern: ^/oauth/v2/token
security: false
secured_area:
pattern: ^/
anonymous: ~
form_login:
provider: fos_userbundle
check_path: /login_check
login_path: /login
always_use_default_target_path: true
default_target_path: /
access_control:
- { path: ^/oauth/v2/auth_login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/oauth/v2/auth, role: ROLE_USER }
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY}
- { path: ^/, roles: ROLE_USER }
- { path: ^/api, roles: [ IS_AUTHENTICATED_FULLY ] }
Run Code Online (Sandbox Code Playgroud)
谢谢.
提交答案将结束悬而未决的问题。
由于请求不包含访问令牌而导致访问被拒绝。请参阅标题为“创建客户端和使用”部分的文档。
https://github.com/FriendsOfSymfony/FOSOAuthServerBundle/blob/master/Resources/doc/index.md
| 归档时间: |
|
| 查看次数: |
5871 次 |
| 最近记录: |