[ FOSOauthServerBudle を使用して] OAuth をセットアップしました。パスワードタイプのフローの設定に取り組んでいます。
クライアント型でアクセストークンを取得できますが、パスワード型を使用するとエラーになります。
エラー: オブジェクト以外でのメンバー関数 loadUserByUsername() の呼び出し
すなわち
$user = $this->userProvider->loadUserByUsername($username); <-OAuthStorage.php 161行目
/oauth/v2/token?client_id=[CLIENTID]&client_secret=[CLIENTSECRET]&grant_type=パスワード&ユーザー名=テスト&パスワード=テスト
したがって、OAuthStorage に設定されたユーザー プロバイダーはありません。これにプロバイダーを設定する方法に関する適切なドキュメントが見つかりません。
私のセキュリティ設定
encoders:
FOS\UserBundle\Model\UserInterface: bcrypt
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
providers:
user_provider:
id: fos_user.user_provider.username_email
firewalls:
dev:
pattern: ^/(_(profiler|wdt|error)|css|images|js)/
security: false
oauth_token:
pattern: ^/oauth/v2/token
security: false
oauth_authorize:
pattern: ^/oauth/v2/auth
form_login:
provider: user_provider
check_path: _security_check
login_path: _demo_login
anonymous: true
api:
pattern: ^/api
fos_oauth: true
stateless: true
access_control:
# You can omit this if /api can be accessed both authenticated and anonymously
- { path: ^/api, roles: [ IS_AUTHENTICATED_FULLY ] }
どう思いますか。何か案は?