我的API在单独域上的身份验证

我的API在单独域上的身份验证,api,authentication,heroku,Api,Authentication,Heroku,我正在尝试创建一个API,可以用于多个客户端应用程序(web、移动等)。我在Heroku上托管该API,因此API地址类似于foo.herokuapp.com 我希望通过它来服务所有请求,但我也希望有一个单独的web客户端与之交互,比如bar.herokuapp.com 现在,我已经通过HTTPS进行了身份验证,使用cookies在API的域上运行良好,但是如何对web客户端(bar.herokuapp.com)到API(foo.herokuapp.com)的请求进行身份验证呢由于它位于一个单独

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

我希望通过它来服务所有请求,但我也希望有一个单独的web客户端与之交互,比如bar.herokuapp.com


现在,我已经通过HTTPS进行了身份验证,使用cookies在API的域上运行良好,但是如何对web客户端(bar.herokuapp.com)到API(foo.herokuapp.com)的请求进行身份验证呢由于它位于一个单独的域上?

如果在foo.herokuapp.com中使用基于cookie的身份验证,则可以将cookie的范围更改为
。herokuapp.com
这样,具有
凭据的CORS请求将从
bar发送cookie

但我看到的一个问题是,herokuapp.com不是你的。其他人可以在heroku中创建应用程序,将你的用户重定向到那里,然后偷走cookie。然后他们就可以用偷来的cookie调用你的api了。所以,我强烈建议你购买一个域名,否则不要使用这种方法


对于这种情况,另一种非常有效的方法是使用JSON Web令牌检查。

在foo.herokuapp.com中使用什么类型的身份验证?这个webapp有点像温泉浴场吗?是的,bar.herokuapp.com将有点像温泉浴场。我正在使用Passport,API(foo.herokuapp.com)上auth的Node.js模块,它正在发送一个cookie以进行身份验证。