繁体   English   中英

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

[英]Ionic + AngularJs + Token based authentication

我已经建立了一个标准的 Ionic 框架(带有ionic start myapp tabs ),并且我在另一端有一个 Laravel PHP 后端(它有数据库等等)。

现在我想要的是从我的移动应用程序(它将是一个本地应用程序,由 PhoneGap 编译)询问我的后端数据库。 CORS 的问题似乎有待解决,我已经阅读了很多关于如何解决的方法,但没有一个真正奏效。

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

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

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

要解决 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'); 
}

我不知道这个回应现在是否可以做一些好事。 但准确地说,可以通过以下步骤避免 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

这样就行了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM