我正在使用FOSOAuthServerBundle作爲我的oauth端點。我成功地生成使用Resource Owner Password Credentials
補助方法上作記號Symfony FOSOAuthServerBundle:未檢測到訪問令牌
{
"access_token": "MY-FOO-TOKEN",
"expires_in": 3600,
"token_type": "bearer",
"scope": "read",
"refresh_token": "MY-BAR-REFRESH-TOKEN"
}
現在我想用它來獲得一些受保護的資源。所以我做了:
curl -X GET -H "Authorization: Bearer MY-FOO-TOKEN" "http://localhost:8000/api/a-bar-resource"
承載似乎沒有被檢測到。
INFOS:
echo $this->get('security.token_storage')->getToken();
給出: AnonymousToken(user="anon.", authenticated=true, roles="")
在標題有:
["authorization"]=> /** <-- Is the lowercase OK? **/
array(1) {
[0]=>
string(93) "Bearer MY-FOO-TOKEN"
}
我也試圖通過access_token
作爲查詢參數,都沒有成功。
現在我猜測config.yml
或security.yml
有什麼不對。這裏有一些選擇的部分:
config.yml:
fos_oauth_server:
[...]
service:
options:
supported_scopes: read
user_provider: fos_user.user_provider.username_email
security.yml:
security:
[...]
firewalls:
api:
pattern: ^/api
fos_oauth: true
stateless: true
anonymous: false
access_control:
- { path: ^/api, roles: [ IS_AUTHENTICATED_ANONYMOUSLY ] }
建議我得到:「我認爲你必須從'安全\認證\提供程序'中的供應商源'oAuthProvider'類中調試它 – Nicorr