Ich versuche, einen OAUTH2-Server basierend auf FOSOauthServerBundle
, FOSRestBundle
und FOSUserBundle
erstellen. Ich habe eine Demo-Anwendung, die meine oauth-server
zu testen und es versäumt die die Daten über Empfang GET reguestZugriff auf/API-Methoden in OAUTH2 Server
(erhielt 401 Fehler 'error = "access_denied", ERROR_DESCRIPTION = "OAuth2 Authentifizierung erforderlich"'),
trotz der Tatsache, dass der Benutzer authentifiziert wurde und der Client ein Zugriffs-Token ordnungsgemäß erhalten.
Wie soll ich die API-Controller implementieren, damit der oauth2 den Authentifizierungsprozess ausführt?
Auch würde ich gerne einen Blick auf echte Arbeit oauth Server Beispiel basierend auf diesen Bundles werfen, so dass ich in der Lage wäre, meine Anwendung darauf zu überprüfen.
mein 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 ] }
Dank.
löste es. Das Problem war, dass ich das Zugriffstoken nicht als Parameter in meinen Anforderungen gesendet habe, sondern es in der Kopfzeile gesetzt habe. – user1976651
Vielleicht könnten Sie Ihre eigene Frage beantworten, um anderen Leuten zu helfen, die gleichen Probleme zu erproben. –
@ user1976651 können Sie mit uns den Code teilen, der das Zugriffs-Token an die Anfrage weitergibt? Dieser Code ist Javascript? –