- oauth/
- Oauth 在不同域上验证API后端的正确方法?(第三方cookie)
Oauth 在不同域上验证API后端的正确方法?(第三方cookie)
Oauth 在不同域上验证API后端的正确方法?(第三方cookie),oauth,express,session-cookies,cors,sails.js,Oauth,Express,Session Cookies,Cors,Sails.js,我有一个web应用程序分为两部分
javascript前端。(myfrontend.com)
API后端(node.js)。(mybackend.com)
这两个部分托管在不同的域上,我需要这样做,因为最终我将为同一后端构建更多前端(即移动web应用程序等)
我现在验证的方式是:
用户从myfrontend.com登录,凭证将被发送(ajax)到mybackend.com,并在那里根据数据库进行检查。如果他们不签出,什么都不会发生,mybackend.com会以错误代码响应
如果他们真的签出,我
我有一个web应用程序分为两部分
javascript前端。(myfrontend.com)
API后端(node.js)。(mybackend.com)
这两个部分托管在不同的域上,我需要这样做,因为最终我将为同一后端构建更多前端(即移动web应用程序等)
我现在验证的方式是:
用户从myfrontend.com登录,凭证将被发送(ajax)到mybackend.com,并在那里根据数据库进行检查。如果他们不签出,什么都不会发生,mybackend.com会以错误代码响应
如果他们真的签出,我会使用express.js的cookie会话,mybackend.com会用cookie响应(对于mybackend.com域)。服务器将从DB检索到的用户id链接到会话
从那时起,对mybackend.com的所有请求都包含cookie,后端使用cookie查找会话,并使用会话中的用户id信息正确响应
起初我对此有很多CORS问题,但在设置了所有正确的标题(如withCredentials等)之后,在每个浏览器中,一切都很好
我认为这是一个非常优雅的解决方案,因为所有用户信息都被严格隔离在后端,前端从不接收任何用户数据,只有一个短暂的cookie
所以我有两个问题:
这样做对吗?OAuth的实现与此有何不同,有何优势
如果我在chrome中关闭第三方cookie,这将停止工作。然而,在safari中关闭第三方cookie仍然可以使其正常工作。怎么回事?当您将ajax添加到“mybackend.com”时,为什么为“mybackend.com”获取cookie会被视为第三方cookie?如果我使用iframe或其他什么,可以吗?我应该担心这个吗
是的,这是一个很好的模式。我在()中使用了相同的方法。OAuth更适用于三方认证:消费者、服务提供商和应用程序。
OAuth1.0需要“OAuthDance”来获取对时间敏感的访问令牌。OAuth2.0更容易,因为在消费者第一次获得令牌后,可以将其交换为充当密码的永久承载者。
OAuth Echo用于委托调用/请求
与浏览器和/或cookie头的严格性有关吗