3 回答
TA贡献1797条经验 获得超4个赞
要使其正常工作,请将api防火墙移至main.
然后我们可以security.yaml使用以下结构对其进行设置:
api:
pattern: ^/api
context: main
stateless: false
anonymous: true
guard:
authenticators:
- App\Security\ApiAuthenticator
provider: db_provider
我们需要的另一件事是AuthenticatorInterface. 例如App\Security\ApiAuthenticator
我们只需要实现从界面以下两种方法: start和supports
public function start(Request $request, AuthenticationException $authException = null)
{
return new Response('', Response::HTTP_UNAUTHORIZED);
}
public function supports(Request $request)
{
return false;
}
注意:以上实现在 Symfony 4 (4.3) 上测试过
TA贡献1795条经验 获得超7个赞
这就是我的安全性的样子。它以您想要的方式工作,只是我使用 OAuth
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
oauth_token:
pattern: ^/oauth/v2/token
security: 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
use_referer: true
api:
pattern: ^/api
fos_oauth: true
stateless: true
anonymous: false
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
logout: true
anonymous: true
guard:
provider: fos_userbundle
authenticators:
- App\Security\GoogleAuthenticator
- App\Security\FacebookAuthenticator
entry_point: App\Security\LoginFormAuthenticator
- 3 回答
- 0 关注
- 171 浏览
添加回答
举报