我的项目包括一个Web应用程序,一个移动应用程序和一个REST API模块。
移动应用程序由Ionic 3 for android制作,并在https服务器上使用位于example.com/api.php等地址的REST API。 API可以访问MySQL数据库。
对于访问API的用户,我必须创建API函数/注销的登录/访问权限,因为他们已经在Web应用程序中创建了帐户。
主要关注的是实施安全登录。这意味着,如果有人试图在未经授权的情况下访问我的API(知道地址,函数名称或使用的参数名称)来重现错误消息。要访问API,您必须登录并有权访问某个部分(我有多个访问级别)。 但是,如何检测访问我的REST API的用户是否已登录并具有适当的权限?
计划:
用于登录步骤 为了访问REST API,我必须在app中使用用户名/密码登录。我检查凭据是否正确(如果用户存在,那么我确定访问级别)并返回带有用户ID和其他参数的JWT(如果需要)(令牌)。存储在JWT的本地存储电话中。
确保对REST API函数的访问 问题是:我该怎么办?如何从REST API访问安全功能?
非常感谢!
答案 0 :(得分:1)
有多种方法可以做到,这一切都取决于你。因此,我正在分享我通常使用的方法,但并没有声称它是最安全的方式。
我们将encryption
,decryption
与private key
一起使用。例如:
注册用户网络服务
离。我们有4个参数1.用户名2.名称3.电子邮件4.密码。使用我的注册网络服务。
我们将使用带私钥的数据连接创建SHA256 Hash
。然后我们将hash
密钥传递给服务器,在服务器端,我们将使用相同的方法生成散列密钥并比较它们。
离。带私钥的字符串= usernamenameemailpasswordprivatekey
sha256 of string = 7814b2d22af647308884acff0be4c675b7f72ba000cf1e8390520100cc930e74
您可能拥有数据字符串的任何序列,并且相同的方法也适用于您的服务器。始终在服务器上使用SSL certificate
以提高安全性。