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 關注
- 193 瀏覽
添加回答
舉報