设计Restful API的提示 - 这种认证逻辑是否合理?

时间:2015-02-15 17:42:42

标签: api rest

我正在为服务提供REST API。我正在努力解决的一个问题是身份验证方面。我检查了一些其他库,我注意到一个策略如下:

服务器端:

app.post("get_dogs"){
    SecretKey = Authorization Header
    if SecretKey in Database{
        dogs = Database[SecretKey]
        return dogs;
    }
    return "Not found!!";
} 

客户端:

request = post("www.random.com/get_dogs")
request.authentication_header = SECRET KEY
response = request.send()

我的问题是:这种技术安全吗?我在身份验证标头中发送密钥。如果有人看到了密钥,那么他们就可以访问该用户的帐户。一种解决方案可能是散列,但是又一次 - 我不太确定。

非常感谢任何建议!

2 个答案:

答案 0 :(得分:0)

使用OAuth2等标准来验证请求。不要发明自己的。有关问题的详细讨论,请参阅http://soabits.blogspot.dk/2014/02/api-authentication-considerations-and.html

答案 1 :(得分:-1)

我认为这篇文章可以帮到你:https://templth.wordpress.com/2015/01/05/implementing-authentication-with-tokens-for-restful-applications/。它描述了在RESTful应用程序中实现安全性的不同方法。

希望它有所帮助,

亨利