トークンベースの認証で REST API アプリケーションを作成しようとしています。通話中
/ouath2/v2/token?client_id=CLIENT_ID&client_secret=CLIENT_SECRET&grant_type=client_credentials
access_token を返します。問題ありません。
ただし、次の API リクエスト サーバーでそれを使用しようとすると、「このリソースにアクセスするには完全な認証が必要です」という例外が発生します。メッセージ。access_token を使用するいくつかの方法を試しました: クエリ ( /api/action?access_token=ACCESS_TOKEN
) 内、ヘッダー ( Authorization: Bearer ACCESS_TOKEN
) 内ですが、すべてうまくいきません。
構成の何が問題なのか教えていただけますか?
FOSOAuthServerBundle && FOSUserBundle を使用した config.yml の一部:
fos_user:
db_driver: orm
firewall_name: main
user_class: AppBundle\Entity\User
fos_oauth_server:
db_driver: orm
client_class: AppBundle\Entity\Client
access_token_class: AppBundle\Entity\AccessToken
refresh_token_class: AppBundle\Entity\RefreshToken
auth_code_class: AppBundle\Entity\AuthCode
service:
user_provider: testApp.user.provider
options:
supported_scopes: user
security.yml:
main:
anonymous: ~
oauth_token:
pattern: ^/oauth/v2/token
security: false
api:
pattern: ^/api
fos_oauth: true
stateless: true
anonymous: false # can be omitted as its default value
access_control:
- { path: ^/api, roles: [ IS_AUTHENTICATED_FULLY ] }