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リクエストでアクセストークンを渡すコードを私たちと共有できますか?このコードはjavascriptですか? –