我正在研究一个新项目symfony 2.我正在同时学习这个框架。 对于用户管理,我使用捆绑FOSUserBundle。 我的项目运作良好,我可以登录,注册,注销和所有其他命令。
问题是我想制作智能手机应用程序,它将使用我的Symfony应用程序的API。 在应用中,用户必须登录或注册。 是否也可以为API使用FOSUserBundle方法?
我研究了另一个非常适合制作API的软件包,它是FOSRestBundle。 如果没有解决方案,您认为我必须创建自己的用户方法,如:
/api/login
/api/registrer
然后,在这个方法中,我重定向到FOSUserBundle方法? 我很想知道什么是最好的,最简洁的登录方式,并从智能手机注册FOSUserBundle,所以使用API
由于
答案 0 :(得分:5)
我也有这个问题。 我发现最好的解决方案就是这个
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");
}
}
答案 1 :(得分:2)
答案 2 :(得分:1)
您需要检查WSSE以及如何integrate it到symfony。 另请查看此post。并且有bundle实现WSSE身份验证。 WSSE是您应用的最佳解决方案之一。