Symfony3:创建没有密码字段的用户,并以编程方式进行身份验证

Mr_*_*oKa 5 php authentication symfony

我正在尝试创建应用程序,其中用户可以通过多个社交服务登录,有些是 OAuth,有些是 OpenID,我的 User 实体不需要用户名字段或密码,但 UserInterface 要求我实现用户名和密码的 getter(以及盐)。

我所做的是在 getUsername 中返回用户 id,在 getPassword 和 getSalt 中返回 null。

我的安全性配置为使用 form_login,但我只提供 /login 路由,因此未经身份验证的用户将被重定向到一个页面,他们可以在其中找到各种登录选项。

我没有提供 check_login 的路线。

我将使用代码以编程方式对用户进行身份验证:

$token = new UsernamePasswordToken($user, null, "main", $user->getRoles());
$this->get("security.token_storage")->setToken($token);
Run Code Online (Sandbox Code Playgroud)

我的问题是,返回空密码并且未设置 check_login 是否安全?我的目标是不让用户使用表单登录。因此他们不会使用空密码登录。我已经检查了到目前为止我所做的所有工作,但我想确保它不会让用户使用空密码登录其他用户。