【问题标题】:AngularJS Symfony3 authorizationAngularJS Symfony3 授权
【发布时间】:2016-05-14 15:49:06
【问题描述】:

所以,我有 symfony3 + FOSRestBundle + FOSUserBundle + AngularJS。我创建了 AuthenticationHandler 例如:Symfony2 AJAX Login

和其他控制器,它获取 POST,然后通过表单验证数据,最后返回成功或错误字段。当然,我是在 AngularJS 控制器中创建来服务这个表单的。

SF 控制器:

 public function postPostmanAction(Request $request) {
    $postman = $this->container->get("postman_form.handler");
    return $postman->post($request->request->all());
  }

SF 处理程序:

class PostmanFormHandler {
// ....
public function post(array $parameters) {
    $postman = new Postman;
    return $this->processForm($postman, $parameters);
  }

  protected function processForm($postman, $parameters) {
    $form = $this->formFactory->create('AppBundle\Form\PostmanType', $postman);
    $form->submit($parameters);
    $em = $this->repository;

    if ($form->isValid()) {
      $em->getRepository("AppBundle:Postman")->save($postman);
      return $postman;
    }
    return $form;
  }
}

接下来我在 AngularJS 中创建了登录用户和控制器的表单,并将 access_controll 添加到表单(postPostmanAction)。

现在当我尝试添加邮递员时,我看到错误 403,所以没关系。

当我登录时,JSON 返回:

{"success":true}

并刷新到选项卡,在分析器 symfony 中我看到:已验证:是和用户名。

现在我可以在登录后添加邮递员。

我有问题,AngularJS 不知道用户何时通过身份验证。用户登录后应该可以看到哪些视图可以访问。

app.config(['$routeProvider', function ($routeProvider) {
    $routeProvider.when('/postman/new', {
      templateUrl: '/MobilePost/web/assets/partials/postman/postman-form.html',
      controller: 'CreatePostmanForm'
    }).when('/login',{
      templateUrl: '/MobilePost/web/assets/partials/user/login-form.html',
      controller: 'LoginUserForm'
    }).otherwise({
      templateUrl: '/MobilePost/web/assets/partials/index.html',
    });
  }
]);

如何在 Angular 中检查授权和权限?

【问题讨论】:

    标签: angularjs symfony


    【解决方案1】:

    您可以在您的 JSONResponse 中放置一个变量“isAuthenticated”:经过身份验证时为 TRUE,未通过身份验证时为 FALSE。

    然后你在你的 angularJS 代码中使用条件。

    另外,我建议你使用https://github.com/FriendsOfSymfony/FOSJsRoutingBundle

    【讨论】:

    • 我想在单页上完成我的应用程序,但我发现这是个问题。我认为这两个方面将是很好的解决方案....
    猜你喜欢
    • 2017-05-24
    • 1970-01-01
    • 1970-01-01
    • 2015-08-13
    • 1970-01-01
    • 2023-03-17
    • 2018-01-23
    • 2015-12-02
    • 2016-01-03
    相关资源
    最近更新 更多