在单独的域上验证我的API

时间:2014-02-03 07:16:26

标签: api authentication heroku

我正在尝试创建一个可以用于多个客户端应用程序(Web,移动等等)的API。我在Heroku上托管API,因此API地址将类似于foo.herokuapp.com。

我希望通过此方式提供所有请求,但我还希望有一个单独的Web客户端与之交互,例如bar.herokuapp.com

现在,我使用在API的域上运行良好的Cookie通过HTTPS进行身份验证,但是如何验证从Web客户端(bar.herokuapp.com)到API(foo.herokuapp.com)的请求,因为它是在一个单独的域名上?

1 个答案:

答案 0 :(得分:1)

如果您在foo.herokuapp.com中使用基于cookie的身份验证,则可以将Cookie的范围更改为.herokuapp.com,这样来自withCredentials的{​​{1}}的CORS请求将发送Cookie

我看到的一个问题是,herokuapp.com不是你的。其他人可以在heroku中创建一个应用程序,将用户重定向到那里并偷走了cookie。然后他们就可以用偷来的cookie给你的api打电话。因此,我强烈建议您购买域名,否则请勿使用此方法。

另一种适用于此情况的方法是使用JSON Web Tokens检查Cookies vs Tokens