5

我从事一个新的 Symfony 2 项目。我正在同时学习这个框架。对于用户管理,我使用包 FOSUserBundle。我的项目运行良好,我可以登录、注册、注销和所有其他可用命令。

问题是我想制作智能手机应用程序,它将使用我的 Symfony 应用程序的 API。在应用程序中,用户必须登录或注册。是否也可以对 API 使用 FOSUserBundle 方法?

我研究了另一个用于制作 API 的包,它是 FOSRestBundle。如果没有解决方案,您是否认为我将不得不创建自己的用户方法,例如:

    /api/login
    /api/register 

然后,在这个方法中,我重定向到 FOSUserBundle 方法?我只是想知道什么是最好的,最干净的登录方式,并从智能手机注册 FOSUserBundle,所以通过使用 API

4

3 回答 3

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");
}
}
于 2015-02-22T15:07:55.993 回答
2

我使用了 FOSRestBundle。

该捆绑包非常强大且易于实现。文档非常完整。

FOSRestBundle 的 github 链接在这里

希望它有所帮助

于 2014-01-26T19:25:30.687 回答
1

您需要检查WSSE以及如何将其集成到 symfony。还要检查这个帖子。还有一个实现 WSSE 身份验证的包。WSSE 是您应用的最佳解决方案之一。

于 2013-10-25T18:32:40.790 回答