我正在为我的php函数创建一个API,因此可以通过移动应用程序访问它们。每个函数都可以通过特定的URL触发,其中参数也是通过此URL提供的。
我的API中的函数示例:
<?php
$function = $_GET['function'];
if($function == "login"){
$userName = $_GET['username'];
$saltedPass = $_GET['pass'];
//login query
//return true or false
}
?>
我们的想法是通过带有HTTPrequest的移动应用启动此功能:
$check = HTTPrequest('www.domain.com/functions.php?function=login&username=mike&pass=343iubgfdg34tJHVvr23').read();
if($check == true){
//login
}
else{
//wrong username or pass
}
但这也意味着每个知道这些特定网址的人都可以启动我的功能。我如何以正确的方式确保这一点?
谢谢
答案 0 :(得分:0)
这是我的经历 您将需要用户登录(至少)
然后您将用户ID /用户电子邮件存储在移动设备(浏览器)或本地存储中 在登录期间,将计算该用户的对应密码并从登录用户
发回例如:用户ID是abc,使用SSL AES128加密你会得到一个像ADEXCEFEF0843495340这样的长字符串
你把他们的用户ID和密码都放在一个数组中然后base64他们, 当发送到网址时,只会发送一个base64令牌,我只是为了让初学者知道如何完成它而感到困惑。
答案 1 :(得分:0)
保护API的最佳方法是OAuth2。这是谷歌,Facebook和Twitter用于验证第一方和第三方客户端(如网站和移动应用程序)的内容。这有点复杂,但如果您可以花时间浏览一下OAuth2 Server教程,那么您以后会感谢自己!看看http://bshaffer.github.io/oauth2-server-php-docs/