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": [
]
}
请帮助我解决这个问题。