javascript - 使用 angularjs 和 php 登录

标签 javascript php angularjs

<分区>

我将尝试使用 angularjs 和 php 构建一个登录系统。但是,我不知道当用户成功登录时我将如何处理 session 和重定向?

我应该在后端使用 PHP 启动一个 session ,然后将其返回到 Angular 吗?当我要重定向用户时,我应该使用 window.location.href 吗?

最佳答案

您可以使用 Php session 并将其返回给 Angular 服务。然后您可以将您的用户信息与服务共享给其他 Controller 。

我建议您使用 ngRoute 和包含用户信息的共享服务。这种方法非常快速和安全。

我只是编辑了我的答案并为您做了一个简单的例子。

var doc = angular.module('doc',
[
    'ngRoute'
]);

doc.service('link', function () {//Creating my service
    this.user = false;//Here is my user object. I am changing these datas in the login section.

});

doc.config(function($routeProvider, $locationProvider) {
    $routeProvider
     .when('/homepage', {
         templateUrl: 'view/homepage.html',
         controller: 'homePage',
     })
    .when('/login', {
        templateUrl: 'view/login.html',
        controller: 'login',
    })
    $locationProvider.html5Mode(true);
});

doc.controller("login", function ($scope, $timeout, link, $location) { //As you see I sent 'link' as a parameter. So I can easily use my service and the user data.
    $scope.username = "";
    $scope.password = "";
    $scope.login = function () {
        $.get("/login.php", {username:$scope.username,password:$scope.password},function(data){
            if(data){
                link.user = JSON.parse(data); // I am parsing my json data and save to link.user
                $location.path("/homapage");
            }
        });
    }
});


doc.controller("homePage", function ($scope, $timeout, link, $location) { //As you see I sent 'link' as a parameter. So I can easily use my service and the user data.
    if(link.user){
        console.log(link.user); // I can access my user!
    }else{
        $location.path("/login");
    }
});

如您所见,我的服务包含我在登录页面初始化的用户数据。现在我可以轻松地在我的 Controller 中使用它们。

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

相关文章:

php - 为什么\\。平等的\。在preg_replace?

php - 如何从另一个类方法 PHP 中捕获异常

javascript - 如何将绑定(bind)变量传递给 ng-click 函数?

AngularJS 指令将自己的标签名称设置为定义的字符串

javascript - <audio>标签倒带

javascript - 数组计数中的唯一值

Javascript 不响应点击事件 [Laravel 5.5]

javascript - 找到最接近的跨度文本?

php - 使用 xampp 在 laravel 中路由

angularjs - Angular UI 选择 : How to add a tooltip for text overflow?