我有一台服务器和许多客户端。身份验证必须在服务器上完成。当用户提交id和密码时,它通过post方法发送,服务器对其进行身份验证并发送状态消息(有效/无效)。这样做不安全。首先,我应该使用一些令牌系统,如facebook如何。所以,为了帮助我在这里发布了一些问题。如果我想要跟随令牌系统,我被建议使用openId。我已经完成了它,但它非常复杂。我不要求那么复杂。
然后我虽然fsockopen。一旦表单提交,它就会转到客户端系统中的一个功能。从该功能我发送和接收数据。
$url = 'http://www.server.net/auth_system/test'.'/'.$email_id.'/'.$password.'/'.$site_id;
$fp = fsockopen($url_parsed['host'],"80",$err_num,$err_str,30);
fputs($fp, "POST $url_parsed[path] HTTP/1.1\r\n");
fputs($fp, "Host: $url_parsed[host]\r\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
fputs($fp, "Content-length: ".strlen($post_string)."\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fputs($fp, $post_string . "\r\n\r\n");
在服务器上:
$status = Database...($email_id, $password, $site_id);
echo "<br>split-delimiter".$email_id."split-delimiter<br>";
echo "split-delimiter".$status."split-delimiter";
**请告诉我,我在做什么是正确的?有更好的方法吗?怎么用curl?
答案 0 :(得分:0)
最近我和我的好朋友有着截然不同的看法。他还认为openID很复杂,他喜欢自己做身份验证。
但我对你(和他)的问题是:
为什么我认为您不应该进行身份验证:
我更喜欢最近编写node.js(JavaScript)然后编写PHP,但我创建了一个小library,它使用极其简单的LightOpenID库和openid-selector来使其友好。您只需克隆存储库即可开始使用。在我看来简直如此。我喜欢做几个提交(我认为还有更多的提交即将到来),也可以使用myopenid.com创建一个OpenID帐户非常容易(就像stackoverflow.com一样)。
您可以在http://westerveld.name/php-openid/的小型PHP虚拟主机提供商上查看一个工作示例(它只是一个与github保持同步的简单git克隆)。它看起来像下面的截图:
P.S:我仍然认为当我做更多的提交时,图书馆将处于一个非常好的状态。我认为这已经很不错了。