|
|
1
25
不-代币是“乘车票”,就像地铁代币一样。客户在请求服务时将其呈现给门卫。在这种情况下,提供程序进行自己的身份验证,因此客户机将令牌返回给提供程序。在某些情况下,提供者可能委托身份验证-例如 the STS model 在这种情况下,提供者可能会将令牌交给第三方进行身份验证甚至授权。 从服务角度来看,此令牌必须:
因此,在步骤3中,提供者需要检查用户名和密码。如果验证有效,则创建一个标记(哈希),它引用字典或哈希表中的条目。哈希表中的对象是包含用户名、IP地址、可能是原始发布时间、可能是与用户名关联的角色以及您希望存储的其他内容的结构。服务提供者将这个令牌(散列,而不是结构)发送回客户机,通常作为一个集合cookie。当客户机在随后的请求中发送回令牌(作为cookie)时,提供者检查字典以查看令牌是否可用、是否超时、是否与请求的IP地址匹配、是否为请求的资源授权等。如果一切正常,则执行请求。 编辑2013六月 已经有好几年了,这个答案仍在获得选票。 我建议人们研究OAuth2.0框架,并携带令牌。 基本上,他们只是做这里描述的事情。 如果您想要一个好的示例实现,您可以查看 Apigee's Usergrid. 它是这样工作的:
|
|
2
1
典型的令牌是存储在服务器端的随机哈希。客户机将其与请求一起返回。这让你得到的是,你不必一直传递密码,这显然是对好的,令牌可以随时失效,而无需更改密码。 |
|
|
3
1
当我研究同一个问题时,我发现AmazonS3的文档很有用。 一般的原则是,您不想在每次连续的服务调用中传递用户名和密码,因为这样做不太安全。 您提到过只是将用户名传回服务,但是这不会非常安全。 您可能在考虑使用会话状态来存储用户已经过身份验证的事实,但是这违背了REST的一个一般原则,即所有内容都应该是无状态的。 |
|
|
4
0
这看起来很像 Kerberos 作品。 |
|
|
5
0
带有会话的Web服务……嗯,这不是它应该的样子。Web服务并不意味着保持状态。
|
|
|
vale383 · 如何在Django端点中查找user_id 1 年前 |
|
|
Tunahan Keklik · 如果用户仍在网站上时会话过期怎么办 1 年前 |
|
onizukaek · 如何将无密码登录链接认证应用于无头架构? 1 年前 |
|
|
Kananda Gama · Problema com登录[关闭] 1 年前 |