我在一个新的 Symfony 2 项目上工作。我正在同时学习这个框架。对于用户管理,我使用捆绑 FOSUserBundle。
我的项目运行良好,我可以登录、注册、注销和所有其他可用命令。
问题是我想制作智能手机应用程序,该应用程序将使用我的 Symfony 应用程序的 API。在应用程序中,用户必须登录或注册。是否也可以将 FOSUserBundle 方法用于 API?
我研究了另一个用于制作 API 的包,它是 FOSRestBundle。
如果没有解决方案,您是否认为我必须创建自己的用户方法,例如:
/api/login
/api/register
然后,在这个方法中,我重定向到 FOSUserBundle 方法?我只是想知道什么是最好的,最干净的登录方式,并从智能手机注册 FOSUserBundle,所以通过使用 API
最佳答案
我也有这个问题。
我发现最好的解决方案是这个
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
class YourController extends Controller{
//Other Methods..
public function loginAction(Request $request){
try{
$token = $this->get('security.authentication.manager')->authenticate(new UsernamePasswordToken('username', 'password', 'firewall'));
$this->get('security.context')->setToken($token);
}
catch(BadCredentialsException $e){
return new Response("Bad credentials", 403);
}
return new Response("success");
}
}
关于api - Symfony 2 - FOSUserBundle - 如何集成到 API 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19574197/