相关疑难解决方法(0)

Facebook如何在画布页面上为iFrame设置跨域cookie?

我正在浏览关于canvas应用程序的Facebook文档,我遇到了一个示例应用程序:http://developers.facebook.com/docs/samples/canvas.然而,当我阅读他们的例子时,我对他们在iframe应用程序中使用cookie感到非常困惑.

一个小背景...

我已经玩过使用iframes嵌入式小部件(与Facebook无关),我发现一些浏览器(Chrome,Safari等)有严格的cookie策略,不允许在iframe中设置跨域cookie(Firefox,另一方面,允许iframe在iframe中设置跨域cookie).例如,如果foo.com具有src="http://bar.com/widget"iframe小部件的iframe将无法为bar.com设置任何cookie,因此将无法在iframe中保持状态:bar.com将解释来自的每个请求(包括ajax请求)窗口小部件作为没有建立会话的新请求.我挣扎了,通过使用JSONP和javascript为foo.com设置cookie来找到解决方法......

... 所以?

好吧,我正在查看示例画布iframe Facebook应用程序,我注意到他们的应用程序(托管在runwithfriends.appspot.com上)能够设置一个cookie u,其中包含当前用户的id以及runwithfriends的一些其他参数. appspot.com域名.它会在每个请求中发送此cookie ...它可以在Chrome和Firefox中运行!WTF?Facebook如何解决Chrome上的跨域cookie限制?

(我现在已经知道了答案,但我认为这可能对那些努力弄清楚同样事情的人有所帮助 - 我将在下面发布答案.)

cookies iframe facebook facebook-iframe

68
推荐指数
1
解决办法
5万
查看次数

自动cookie单点登录多个域 - 如谷歌

我不明白谷歌如何实现以下单点登录机制:

  1. 我以gmail登录为例(我想这会在我的授权下创建一个cookie)
  2. 我打开一个新标签并直接输入"youtube"的网址
  3. 然后我输入youtube登录.

第二个站点如何检测到我已经登录.它们是不同的域.Youtube无法读取Gmail的Cookie.

我读过的关于单点登录的所有解决方案都不允许这样做.客户端始终要求获得中央登录应用程序的权限.在我的示例中,YouTube不知道我是登录Gmail的用户(实际上它确实知道,但我不明白如何)

请注意,我手动输入"youtube"的网址.我没有从gmail的上方工具栏中取出youtube图标(在这种情况下,gmail可能会通过网址传递一些auth params).

cookies dns single-sign-on

24
推荐指数
3
解决办法
9212
查看次数

如何从一个域重定向到另一个域并为另一个域设置 cookie 或标头?

我正在使用 FastAPIRedirectResponse并尝试将用户从一个应用程序(域)重定向到另一个应用程序(域),并在 ; 中设置一些responsecookie 然而,cookie 总是被删除/不被传输。如果我尝试添加一些标头,我添加到的所有标头RedirectResponse也不会传输。

@router.post("/callback")
async def sso_callback(request: Request):
   jwt_token = generate_token(request)
   redirect_response = RedirectResponse(url="http://192.168.10.1/app/callback", 
                             status_code=303)
   redirect_response.set_cookie(key="accessToken", value=jwt_token, httponly=True)
   redirect_response.headers["Authorization"] = str(jwt_token)
   return redirect_response
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?先谢谢您的帮助。

python cookies redirect cross-domain fastapi

10
推荐指数
1
解决办法
8893
查看次数

Safari 13+ 阻止 iframe 中的跨域 cookie [适用于 safari 12、11 和 10]

在低于 12 的 safari 版本中,当出现 cookie 禁用问题时,我曾经将网站重定向到跨域网站并在那里创建 cookie。然后将网站重定向回包含 iframe 的网页。但不幸的是,它在 safari 13+ 中不起作用。它会阻止 cookie。但它适用于私人窗口。

如果有人可以帮助我解决以下问题,那就太好了。

browser cookies safari iframe

8
推荐指数
0
解决办法
1689
查看次数

如何在同一个域上为iframe设置cookie

我正在尝试在CMS Plone中集成etherpad-lite,遵循官方文档http://etherpad.org/doc/v1.2.7/的示例1

Portal places the cookie "sessionID" with the given value on the client and creates an iframe including the pad.
Run Code Online (Sandbox Code Playgroud)

除了饼干之外,每件事都很顺利.阅读文档最好的实践似乎使etherpad-lite在特定路径下的同一域中.这就是我使用/ pad/path所做的.

Plone方面如果没有创建会话,我创建了,我添加了一个cookie然后我正在重定向到同一页面,以确保cookie在浏览器中.

结果,我的cookie被添加到主页面的请求中,但不是if iframe请求.

以下是主页面和iframe的Google Chrome控制台网络标签:

http://toutpt.makina-corpus.org/en/images/cookie-in-iframe/

对应于setCookie的代码位于https://github.com/toutpt/collective.etherpad/blob/master/collective/etherpad/archetypes.py#L100

cookies session-cookies etherpad

6
推荐指数
1
解决办法
6288
查看次数

网站可以做些什么来整合第三方cookie

我在一个电子商务网站工作.我们所做的部分工作是为一些客户提供定制商品.最近,一些非技术管理层承诺我们可以将我们的结账流程纳入这样一个客户的网站.我们弄清楚如何做到这一点的唯一方法是使用iframe(我知道,我也不喜欢它).问题是该网站的大多数客户无法签出,因为我们使用cookie来确定要显示的自定义项目.浏览器将我们的cookie识别为第三方,并且几乎每个人都关闭了第三方cookie.如果答案是肯定的,我会感到震惊,但有没有解决办法呢?即托管我们的iframe的网站能以某种方式提供必要的cookie吗?

cookies

4
推荐指数
1
解决办法
1363
查看次数