我正在寻找一些灵感(帮助),以便根据我的需求为我的应用程序做一个好的登录系统,所以场景是这样的:
我有一个后端应用程序,在登录时会创建一个 session ,我在浏览器上唯一能看到它设置的是 PHPSESSID cookie。
所以,我已经完成了我的应用程序并像这样定义。
var app = angular.module('myApp', []);
据我所知,我必须执行类似的操作,检查登录 Controller ,如果成功,则创建我复制的代码行并更改 View ,否则,不创建。
所以,我想为此创建一个 Controller ,但是,我应该为此创建另一个应用程序吗?所以我的ng-app会有2个应用程序?或者无论登录与否,只要登录不成功就实例化应用程序并隐藏主页按钮?
我有点迷失在这里,我将不胜感激任何为我指明正确方向的帮助。
最佳答案
有很多方法可以实现它。我只说我平时用的方法。假设,在下图中,用户无需登录即可查看博客。用户登录后,顶部会出现黑色导航栏。如何使用AngularJS实现它?
在文章.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/