angularjs - 使用 Angular 和 php session 创建登录

标签 angularjs

我正在寻找一些灵感(帮助),以便根据我的需求为我的应用程序做一个好的登录系统,所以场景是这样的:

我有一个后端应用程序,在登录时会创建一个 session ,我在浏览器上唯一能看到它设置的是 PHPSESSID cookie。

所以,我已经完成了我的应用程序并像这样定义。

 var app = angular.module('myApp', []);

据我所知,我必须执行类似的操作,检查登录 Controller ,如果成功,则创建我复制的代码行并更改 View ,否则,不创建。

所以,我想为此创建一个 Controller ,但是,我应该为此创建另一个应用程序吗?所以我的ng-app会有2个应用程序?或者无论登录与否,只要登录不成功就实例化应用程序并隐藏主页按钮?

我有点迷失在这里,我将不胜感激任何为我指明正确方向的帮助。

最佳答案

有很多方法可以实现它。我只说我平时用的方法。假设,在下图中,用户无需登录即可查看博客。用户登录后,顶部会出现黑色导航栏。如何使用AngularJS实现它?

enter image description here

在文章.html中

<div ny-app='myapp' ng-controller='mycontroller'>
   <user-navbar ng-if="user" user-data='user'><user-navbar>
   <article-content></article-content>
</div>
<script src="angularjs....."></script>
<script>
angular.module('myapp',[]).controller('mycontroller',['$scope','$http', 
    function($scope,$http){
        $http.get('/getuserdata.php').success(function(user){
             // you will get user data only when session is valid.
             $scope.user = user;
        });
    }
]);
</script>

getuserdata.php

<?php

     if(!empty($_SESSION['user'])){
         echo json_encode($_SESSION['user']);
     }
     echo null;
?>

上面的代码显示,当用户登录时, session 在 user 键中设置。 $_SESSION['user'] 将包含您的用户信息,您只需通过 echo 将其响应到前端 AngularJS 即可。

然后,$http将接收请求的用户数据并分配给$scope.user,导航栏将显示如果$scope.user 不为空。您不必使用 PHPSESSID。如果您编码正确,PHP session 将为您处理一切。

关于angularjs - 使用 Angular 和 php session 创建登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28215796/

相关文章:

javascript - 从 Bower 移动到 NPM 时出现包问题(瞬间重复)

javascript - AngularJS - 使用 ng-click 非顺序调用两个函数

javascript - 如何使用 Angular.js 和 CSS 赋予动画效果

javascript - 如何修复 Firefox c select 上的错误?

javascript - $scope.$on 事件后 $broadcast 后 Angular 范围未更新

javascript - Angularjs Typeahead 不显示下拉菜单

javascript - AngularJS - 表单自定义验证 - 检查是否至少有一个输入为空

javascript - 选择框中的 ng-model 无法正常工作

javascript - Promisify QT 回调到 AngularJS Promise

angularjs - ng-grid 不会滚动到最后一行