基于REST API的HTTP基本身份validation
我是Restful API的概念的新手。
我正在为在线商店devise一个宁静的api。
我没有正确理解ssl基本httpauthentication的概念。
这是否意味着,对于每一个请求,用户将不得不再次input他/她的用户名和密码?
有人可以请详细解释它是如何运作的,以及如何使用它?
提前致谢。
基本的身份validation只是一个标准的HTTP头,用户名和密码都是用base64编码的:
授权:基本QWxhZGRpbjpvcGVuIHNlc2FtZQ ==
( http://en.wikipedia.org/wiki/Basic_access_authentication )。如果你通过这个头以非ssl连接authentication你的rest API调用,问题是中间的任何人都可以从你的auth中解码你的用户名和密docker。
要确保您的密码安全发送,而不是正常的HTTP连接,您必须使用HTTPS。 HTTP和HTTPS之间的唯一区别是HTTPS正在使用TCP / IP上的SSL / TSL安全协议,而不是普通的TCP / IP。
现在这有一个缺点,build立一个HTTPS连接在CPU比普通的HTTP连接更昂贵。 非常清楚的是,如果您希望通过此标头对每个请求的剩余调用进行身份validation,则应使您的其余API仅用于HTTPS连接。