移动 AngularJS 应用程序上的用户身份验证

User Authentication on a mobile AngularJS App

我想问一个问题,可能会有不止一种解决方案,但现阶段我不知道如何解决这个问题。

我目前正在构建内置于 Angular/Ionic 中的移动应用程序,它正在访问 Woocommerce API,为此应用程序需要传递消费者密钥和秘密才能获得产品信息以及创造产品。

我假设我无法直接访问 phone 上的数据库,我可以在其中存储这些详细信息以验证我的应用程序并将其指向正确的 woocommerce 商店。

即使我将这些存储在基于服务器的应用程序中,我的移动应用程序仍然需要对基于服务器的应用程序进行身份验证才能访问正确的 woocommerce 商店。

有人可以指出开发人员如何解决这个问题的正确方向吗?

通常,Phonegap/Ionic 中的移动身份验证如下所示:

  1. 您使用 Login/Pass 或 ApiKey 发送身份验证请求。
  2. 服务器响应一些令牌。
  3. 你将Token存储在localStorage中。
  4. 随每个 ApiRequest 发送令牌。

这里是一个例子,如果你已经有一些令牌,如何将令牌传递给每个 API 请求。

angular.module('app').config(AppConfig);
AppConfig.$inject = ['$httpProvider'];
function AppConfig($httpProvider, $sceProvider) {  
    var token = simpleStorage.get('access_token'); // simpleStorage here is a js-plugin for using LocalStorage
    if(token){
        $httpProvider.defaults.headers.common['access-token'] = token;
    }
}

这里有一篇关于angular-js 身份验证的好文章 https://medium.com/opinionated-angularjs/techniques-for-authentication-in-angularjs-applications-7bbf0346acec

如果您需要高级别的安全性,那么您可以使用基于令牌的登录 喜欢:http://devcenter.kinvey.com/angular/tutorials/how-to-implement-safe-signin-via-oauth

或 你可以使用 http://jwt.io