使用REST API验证本地移动应用


16

我即将开始一个新项目,该项目针对所有主要移动平台(iOS,Android,Windows)的移动应用程序。这将是一个客户端-服务器架构。

该应用程序具有信息性和交易性。对于交易而言,他们必须先拥有一个帐户并登录才能进行交易。我是移动开发的新手,所以我不知道在这些平台上如何完成身份验证部分。客户端将通过REST API与服务器通信。当然会使用HTTPS。

我尚未决定是否要让用户在打开应用程序时登录,还是仅在执行交易时登录。

我有以下问题:

1)像Facebook应用程序一样,您只有在首次打开该应用程序时才输入凭据。之后,您每次打开应用程序都会自动登录。如何做到这一点?只是简单地通过将凭据加密并存储在设备上并在每次应用启动时发送凭据即可?

2)我是否需要针对对REST API进行的每个(交易)请求对用户进行身份验证,或使用基于令牌的方法?

请随时提出其他验证方式。

谢谢!

Answers:


14

您将用户名/密码传递给RESTful API的登录方法,它将返回访问令牌。该访问令牌只是一些(对于系统而言)唯一的字符串。

设备存储(持久)该访问令牌。每次将RESTful请求发送到服务器时,都会将该访问令牌放在HTTP请求的标头中。服务器通过访问令牌找到用户,并成功完成请求。

用户名/密码不得存储在设备上。


第三方(黑客等)是否有可能持有访问令牌?
Supercell

当然可以。特别是如果您不使用HTTPS。大多数在线电子邮件客户端要求您不时重新登录。例如,令牌的到期时间设置为两周。因此,每两周一次,您需要重新登录。
c-smile

如何生成访问令牌,以及将访问令牌保存在服务器上。
Ghyath Serhal

@ c-smile Facebook从未要求我重新登录。因此,我看不出密码和访问令牌之间的区别。
Mickael Marrache

我知道这已经很晚了。但是Facebook和其他提供商在登录时会发出刷新令牌,访问令牌和到期时间(对于访问令牌)。访问令牌是短暂的,可以使用刷新令牌生成新的访问令牌。下次登录可以创建新的刷新令牌,从而使旧令牌无效
Cerlin '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.