客户端将用户名和密码发送到服务器。
Server然后检查此用户是否已通过身份验证。
如果是,服务器返回客户端的访问令牌......
然后,用户可以使用此访问令牌访问受保护的资源......
这里的优点是我们不会通过API调用发送用户信息,并且访问令牌将不会持续很长时间,因此黑客将无法找到用户身份验证信息(用户名和密码),如果他发现,访问令牌将不会持续足够长的时间来执行任何操作。
这就是我理解Laravel护照API安全性的方法。
这里令人困惑的是,在第一次API调用时,用户必须发送用户名和密码,因此黑客仍有很大机会找到用户信息!!!
我知道我的理解有问题,这就是为什么我感到困惑,任何解释都会非常感激。
答案 0 :(得分:5)
必须有办法向授权服务器证明您的身份,一种方法是提供用户名和密码。只要它使用HTTP,您将在授权服务器和客户端应用程序之间实现通信的方式完全取决于您。如RFC-6749中所述:
此规范旨在与HTTP([RFC2616])一起使用。该 在HTTP以外的任何协议上使用OAuth都超出了范围。
当然,建议尽可能使用HTTPS。仅仅因为文档中提到了HTTP,并不意味着HTTPS不能被使用,因为HTTPS只是HTTP的加密版本。
我想提及的另一件事是您不需要提供用户名和密码,例如,您可以使用多种授权类型代替用户名和密码,您可以提供客户端凭据中使用的 client_id 和 client_secret 授予类型。
如果你是新手,我相信这对你来说有点让人困惑。总结OAuth2给你的目的(据我所知),是:
这是我的原因之一,而RFC-6749有更好的解释:
要了解有关OAuth2的更多信息,我们建议您阅读以下内容:
希望我澄清至少一小部分模糊。