Sto cercando di creare un server oauth2 basato su FOSOauthServerBundle
, FOSRestBundle
e FOSUserBundle
. Ho creato un'applicazione demo per testare la mia oauth-server
ed è venuto a mancare la ricezione dei dati tramite il GET reguestaccesso ai metodi/api nel server oauth2
(ha ricevuto 401 errore 'errore = "ACCESS_DENIED", ERROR_DESCRIPTION = "OAuth2 autenticazione richiesto"'),
nonostante il fatto che l'utente sia stato autenticato e il client abbia ricevuto correttamente un token di accesso.
Come devo implementare i controller api in modo che oauth2 esegua il processo di autenticazione?
Inoltre, vorrei dare un'occhiata al vero esempio di server oauth funzionante basato su quei pacchetti in modo da poter controllare la mia applicazione su di esso.
mia 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 ] }
Grazie.
risolto. il problema era che non ho inviato il token di accesso come parametro nelle mie richieste, ma l'ho impostato nell'intestazione. – user1976651
forse potresti rispondere alla tua stessa domanda per aiutare altre persone a sperimentare gli stessi problemi. –
@ user1976651 puoi condividere con noi il codice che passa il token di accesso alla richiesta? Questo codice è javascript? –