FOSOauthServerBundle
, FOSRestBundle
및 FOSUserBundle
을 기반으로 oauth2 서버를 생성하려고합니다. 나는 내 oauth-server
을 테스트 할 수있는 데모 응용 프로그램을 만들고 그것을 통해 데이터를 수신하지 못한 reguest이oauth2 서버의/api 메소드에 액세스
,
(401 오류 '오류 = "ACCESS_DENIED", ERROR_DESCRIPTION = "필요한 OAuth2를 인증"'받은) GET
에도 불구하고 사용자가 인증되었고 클라이언트가 액세스 토큰을 올바르게 수신 했음에도 불구하고.
oauth2가 인증 프로세스를 실행하기 위해 어떻게 api 컨트롤러를 구현해야합니까?
또한, 실제 응용 프로그램을 검사 할 수 있도록 해당 번들을 기반으로하는 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 ] }
감사합니다.
이 해결되었습니다. 문제는 내가 요청한 매개 변수로 액세스 토큰을 보내지 않았지만 헤더에 설정했기 때문입니다. – user1976651
다른 사람들이 동일한 문제를 경험할 수 있도록 자신의 질문에 대한 답을 줄 수도 있습니다. –
@ user1976651 요청에 액세스 토큰을 전달하는 코드를 Google과 공유 할 수 있습니까? 이 코드는 javascript입니까? –