Ionic + AngularJs +基于令牌的身份验证

时间:2015-02-12 15:28:21

标签: angularjs cordova authentication ionic-framework ionic

我已经设置了一个标准的离子框架(带有“离子启动myapp选项卡”),并且我在另一边有一个laravel php后端(有数据库等等)。

现在我想要的是从我的移动应用程序询问我的后端数据库(它将是一个本机应用程序,由phonegap编译)。看起来CORS有问题需要解决,而且我已经阅读了很多关于如何做到这一点的方法,但没有一个真正奏效。

对我的外部后端服务器进行身份验证(基于令牌)的好方法是什么,然后,一旦经过身份验证,请向服务器API询问各种事情?还有人有一个很好的教程和/或工作示例吗?

3 个答案:

答案 0 :(得分:2)

这个教程可以帮助你如何使用带有角度和节点js的令牌系统。使用mysql可以使用数据库。当使用基于令牌的身份验证时,在每个服务器端点都应该有一个有效的令牌。你可以你的可行令牌生成器也喜欢oauth2。

http://code.tutsplus.com/tutorials/token-based-authentication-with-angularjs-nodejs--cms-22543

答案 1 :(得分:1)

要解决CORS问题,请将此php代码添加到php api的头部

if (isset($_SERVER['HTTP_ORIGIN'])) {
    header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
    header('Access-Control-Allow-Credentials: true');
    header('Access-Control-Max-Age: 166400'); 
}

答案 2 :(得分:0)

我不知道这种反应现在能做些好事。但准确地说,通过以下步骤可以避免CORS。

首先在您的服务器中创建一个单独的php文件,并将其命名为“api.php”(或您喜欢的任何内容)并包含此文件。

   <?php
       if (isset($_SERVER['HTTP_ORIGIN'])) {
           header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
           header('Access-Control-Allow-Credentials: true');
           header('Access-Control-Max-Age: 86400');    // cache for 1 day
       }

       // Access-Control headers are received during OPTIONS requests
       if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {

           if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
                header("Access-Control-Allow-Methods: GET, POST, OPTIONS");         

           if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
                header("Access-Control-Allow-Headers:        {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");

           exit(0);
       }
   ?>

然后在你的其他php文件发送响应给客户端使用

   include_once './api.php'; // or the name use above

这样就可以了。