1

FOSOAuthServerBundle 令牌的用户分配在我当前使用的 Symfony 4 和系统中不起作用。

我在控制器上实现了 Token 控制,并 FOSUserBundle用于用户验证。

我将使用控制器和另一个文件检查用户数据。

Security.yml

security:
 encoders:
  FOS\UserBundle\Model\UserInterface: bcrypt

providers:
 fos_userbundle:
  id: fos_user.user_provider.username

firewalls:
 api:
  pattern:    ^/api/v2
  fos_oauth:  true
  stateless:  true

oauth_token:
  pattern:    ^/oauth/v2/token
  security:   false

main:
  pattern: ^/
  form_login:
    provider: fos_userbundle
    csrf_token_generator: security.csrf.token_manager
  logout:       true
  anonymous:    false

oauth_authorize:
  pattern: ^/oauth/v2/auth
  form_login:
    provider: fos_userbundle
    check_path: /oauth/v2/auth_login_check
    login_path: /oauth/v2/auth_login
  anonymous: true

access_control:
 - { path: ^/api, roles: [ IS_AUTHENTICATED_FULLY ] }

获取授权响应

    // http://localhost:8000/oauth/v2/token?client_id=CLIENT_ID&client_secret=SECRET&grant_type=password&username=username&password=password

{
 "access_token":"Token",
 "expires_in": 3600,
 "token_type": "bearer",
 "scope": null,
 "refresh_token":"Token"
  }

控制器

/**
 * @param Request $request
 * @Route("/Task")
 * @return Response
 */
public function getData(Request $request):Response
{
  return $this->json( $this->get("security.token_storage")->getToken());
}

结果如下:

{
 "token": "Token",
 "credentials": "Token",
 "roles": [

  ],
 "username": "",
 "user": null,
 "authenticated": true,
 "attributes": [

   ]
  }

请帮助我解决这个问题。

4

0 回答 0