PHP中基于令牌的身份验证
我的web服务器上有一个REST服务,用php编写。 我想知道,什么是最好的认证(除了基本的http访问认证)。 我听说过基于令牌的身份验证,并想问是否有人可以解释主要步骤。
客户端:Android /浏览器; 服务器:Apache,PHP5
它可以以任何方式完成,并且GET请求中的值实际上比POST请求中的值更加可见。 如果有人能够“看到”(即拦截)请求,他可以看到你发送的所有内容。 最后,HTTP请求只是一堆HTTP头,可能跟一个主体。 该URL在第一个GET /foo/bar HTTP/1.1
行中发送,其他值仅在不同的行中发送。
因此,您希望您的身份验证令牌发送到哪里。 您可以要求它是附加到每个请求的查询参数:
GET /foo/bar?user=123456&token=abcde...
要按照预期的方式真正使用HTTP协议,您应该使用Authorization
HTTP标头:
Authorization: MyScheme 123456:abcde...
这个标题的内容完全取决于你。 它通常指定一个像Basic
这样的授权方法,然后是任何想要验证的需求。 这可以简单地是用户名和密码,它们的散列,客户端在某个点或其他任何地方获得的不透明令牌。
我建议使用令牌系统或请求签名系统,后者是非常受欢迎的。 在请求签名系统中,客户端必须从您那里获取令牌。 然后它发送该令牌的散列和请求的某些特征以验证请求,例如sha1(Token + Timestamp + Request URL + Request Body)
。 您的服务器可以验证这一点,而无需客户端在每个请求上以纯文本形式发送令牌。
如何让令牌只在特定时间有效?
您使用过期时间戳保存令牌服务器端并检查它。
这是一 链接地址: http://www.djcxy.com/p/21991.html