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. 这最终将有助于获取当前登录用户的项目列表. 愿这有助于某人. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容