我正在尝试创建一个可以用于多个客户端应用程序(Web,移动等等)的API。我在Heroku上托管API,因此API地址将类似于foo.herokuapp.com。
我希望通过此方式提供所有请求,但我还希望有一个单独的Web客户端与之交互,例如bar.herokuapp.com
现在,我使用在API的域上运行良好的Cookie通过HTTPS进行身份验证,但是如何验证从Web客户端(bar.herokuapp.com)到API(foo.herokuapp.com)的请求,因为它是在一个单独的域名上?
答案 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。