加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 如何使用Principal或Account服务获取当前登录用户

发布时间:2020-12-17 16:56:26 所属栏目:安全 来源:网络整理
导读:我正在尝试加载特定于登录用户的$scope.projects. REST api方面是 @RequestMapping(value = "/users/{id}/projects",method = RequestMethod.GET,produces = MediaType.APPLICATION_JSON_VALUE)@Timedpublic ResponseEntityListProject getAllProjects(@Path
我正在尝试加载特定于登录用户的$scope.projects. REST api方面是

@RequestMapping(value = "/users/{id}/projects",method = RequestMethod.GET,produces = MediaType.APPLICATION_JSON_VALUE)
@Timed
public ResponseEntity<List<Project>> getAllProjects(@PathVariable("id") String id,HttpServletResponse response)
        throws URISyntaxException {
    log.debug("REST request to get User : {}",id);
    User user = userRepository.findOneByLogin(id);
    if (user == null) {
        response.setStatus(HttpServletResponse.SC_NOT_FOUND);
    }
    List<Project> page = projectRepository.findByUserIsCurrentUser();
    return new ResponseEntity<List<Project>>(page,HttpStatus.OK);
}

用颤抖的客户端检查这一点.

angular.module('tfmappApp')
.factory('UserProject',function ($resource) {
    return $resource('api/users/:id/projects',{},{
            'query': {method: 'GET',isArray: true,params: { id: '@login'}},'get': {
                method: 'GET',transformResponse: function (data) {
                    data = angular.fromJson(data);
                    return data;
                }
            }
        });
    });

angular.module('tfmappApp')
.controller('ProjectController',function ($scope,Principal,Project,User,UserProject,ParseLinks) {
    $scope.projects = [];
    $scope.page = 1;

    Principal.identity().then(function(account) {
        $scope.account = account;
        $scope.isAuthenticated = Principal.isAuthenticated;
    });
    $scope.loadAll = function() {
        $scope.projects = UserProject.query({id: $scope.account.login});

    };
    $scope.loadPage = function(page) {
        $scope.page = page;
        $scope.loadAll();
    };
    $scope.loadAll();});

主要服务是Jhipster生成.以下代码无效,或者我遗漏了一些东西.

Principal.identity().then(function(account) {
        $scope.account = account;
        $scope.isAuthenticated = Principal.isAuthenticated;
    });

如何获取当前登录的用户?

获取当前登录的帐户或委托人或用户的正确方法是什么?

我正在使用Jhipster生成的HTTP会话身份验证.

解决方法

我得到了一些解决这个问题的方法.不是我想要的.

@Query("select project from Project project where project.user.login = ?#{principal.username}")
List<Project> findByUserIsCurrentUser();

是jhipster生成的代码,用于加载当前用户的项目列表.项目与用户之间存在多对一的关系.

所以我们不需要像/ users / {id} /项目这样的REST url我们可以直接在工厂中使用/ projects以及java rest controller.

这最终将有助于获取当前登录用户的项目列表.

愿这有助于某人.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读