Joh*_*lin 11 php authentication rest
我的网络服务器上有一个REST服务,用php编写.我想知道,什么是最好的身份验证(除了基本的http访问身份验证).我听说过基于令牌的身份证,并且想问一下是否有人可以解释主要步骤.
客户端:Android /浏览器; 服务器:Apache,PHP5
dec*_*eze 12
它可以以任何一种方式完成,并且GET请求中的值实际上不比POST请求中的值更明显.如果有人可以"看到"(即拦截)请求,他可以看到你发送的所有内容.最后,HTTP请求只是一堆HTTP头,可能后跟一个正文.URL在第一GET /foo/bar HTTP/1.1行发送,其他值只在不同的后续行发送.
因此,您可以在何处发送您的身份验证令牌.您可以要求它是附加到每个请求的查询参数:
GET /foo/bar?user=123456&token=abcde...
Run Code Online (Sandbox Code Playgroud)
要真正按照预期使用HTTP协议,您应该使用AuthorizationHTTP标头:
Authorization: MyScheme 123456:abcde...
Run Code Online (Sandbox Code Playgroud)
此标题的内容完全取决于您.它通常指定一个授权方法Basic,然后是您想要进行身份验证的任何方法.这可以简单地是用户名和密码,它们的哈希值,客户端在某些时候或其他任何地方获得的不透明令牌.
我建议使用令牌系统或请求签名系统,后者非常受欢迎.在请求签名系统中,客户端必须从您那里获取令牌.然后,它发送此令牌的散列和请求的某些特征以验证请求,例如sha1(Token + Timestamp + Request URL + Request Body).您的服务器可以验证这一点,而客户端不必在每个请求上以纯文本形式发送令牌.
如何使令牌仅在特定时间有效?
您使用到期时间戳保存令牌服务器端并检查它.
| 归档时间: |
|
| 查看次数: |
26443 次 |
| 最近记录: |