App / API身份验证方法建议

时间:2016-07-16 09:11:09

标签: node.js cordova authentication api-design auth0

我正在构建一个移动应用程序(Ionic / Cordova),它将调用一个API(NodeJS),我试图提出一种简单有效的用户身份验证方法,可以同时:

  1. 将用户签入移动应用并
  2. 保护API,以便只有已登录的用户才能调用API
  3. API可以识别哪个用户正在调用它
  4. 理想情况下,我会使用Auth0之类的方式将用户签到应用中,因为我不想处理密码等。

    所以我知道我可以构建我的HTML5 / Javascript应用程序并使用Auth0,它会将用户登录到应用程序,但我试图理解的部分是如何设置它以便用户登录时在他们的应用程序中调用NodeJS API,API代码将知道用户是谁?

    我可以将NodeJS护照模块用于Auth0,只需将令牌从应用程序传递给API,就像魔法一样可行吗?或者我是否需要在API本身中做一些不同的事情,比如构建一个oauth机制?

    有关如何在此方案中保护API的任何建议将不胜感激。理想情况下,我不想在API中构建自己的身份验证/令牌系统。

1 个答案:

答案 0 :(得分:1)

是护照也可以帮助您开发siple authnetication机制。像用户名passoword。登录一次并保持登录一段时间。

check this tutorial

要获得tokem,您必须添加signin API。在signin API中验证用户名和密码。然后生成一个jwt令牌并传递给客户端。

func fizzBuzz(n: Int) -> String {
 switch n {
  case _ where n % 3 == 0:
    print("Fizz")
  case _ where n % 5 == 0:
    print("Buzz")
  case _ where n % 15 == 0:
    print("FizzBuzz")
  default:
    print("none")
 }
 return "\(n)"
}

现在在您的移动应用程序中在客户端,您可以另存为cookie或本地存储。

 var token = jwt.encode(user, config.secret);

然后在您调用受限制的API之后。你传递了令牌。像这样

window.localStorage.setItem('token', 'the-long-access-token');