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

时间:2018-08-20 12:50:04

标签: symfony authentication fosuserbundle

我只需要授权自定义用户。没有任何起点,令牌等。我的数据库中有用户实体。 用户类别已经配置为fos_user.yaml:

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

有可能吗?像

Authurizer::authorize($userEntity)

谢谢。

3 个答案:

答案 0 :(得分:1)

FOSUserBundle的自定义命令为

Ghost

没有这种直接授权的方法。

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

答案 1 :(得分:1)

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

一种常见的用例是注册后立即进行“自动登录”。

看看这篇文章-> 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);

BUT还可以查看symfony的非个性化=> https://symfony.com/doc/current/security/impersonating_user.html

基本上,您无需填写表格也不知道用户的凭证即可切换用户

答案 2 :(得分:0)

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