如何在 Symfony4 中从数据库授权自定义用户

How to authorize custom user from db in Symfony4

我只需要授权自定义用户。没有任何来源、令牌等。我的数据库中有用户实体。 用户 class 已经配置 fos_user.yaml:

fos_user:
db_driver: orm
firewall_name: main
from_email:
    address: '***@*******.**'
    sender_name: '**.****.**'
user_class: App\Entity\User

可能吗?像

Authurizer::authorize($userEntity)

谢谢。

FOSUserBundle 的自定义命令是

  fos:user:activate                                           
  fos:user:change-password                                    
  fos:user:create                                             
  fos:user:deactivate                                         
  fos:user:demote                                             
  fos:user:promote     

没有你想直接授权的方式。

您可以在 symfony 中创建自定义命令,它接受用户名并对用户进行身份验证。这是创建这样一个命令的方法:https://symfony.com/doc/current/console.html

Symfony 中的授权完成令牌。要登录 Symfony 的世界,您需要设置一个令牌。

一个常见的用例是 "auto login" 注册后。

看看这篇文章 -> https://ourcodeworld.com/articles/read/459/how-to-authenticate-login-manually-an-user-in-a-controller-with-or-without-fosuserbundle-on-symfony-3

尤其是那个部分

$token = new UsernamePasswordToken($user, null, 'main', $user->getRoles());
$this->get('security.token_storage')->setToken($token);

但也要看看 symfony 的非个性化 => https://symfony.com/doc/current/security/impersonating_user.html

它基本上允许您在不填写表格和知道用户凭据的情况下切换用户

谢谢你们,伙计们!我在这里找到了解决方案!
How to programmatically login/authenticate a user?
抱歉错误或愚蠢的问题。