需要身份验证的链接如何工作?

时间:2017-03-13 22:03:12

标签: javascript authentication url

假设我登录Facebook并且正在查看私人活动。我想将该链接发送给我的朋友,以便他可以参加活动。但是,这样做需要我的朋友登录Facebook(进行身份验证),以便他可以查看事件并加入。换句话说:

  1. 我已登录,并在活动页面上。我复制了网址。
  2. 我将它粘贴给我的朋友,然后点击它。
  3. 在她登录
  4. 之前,她无法访问该页面
  5. 登录后,会重定向回事件页面。
  6. 我的问题在于从第3步到第4步。事件页面的原始链接怎么样?记得"?该事件页面链接是存储在某个地方,然后在登录后应用吗?当用户登录物理URL已经更改为登录页面时,我不清楚页面是如何被重定向的。

    注意:我不知道这是否与Facebook实际相关。这只是一个例子。我的问题并不围绕如何邀请人们参加Facebook活动。

2 个答案:

答案 0 :(得分:2)

从安全网址重定向到使用http://somehost/login?from=enteredURL之类的参数登录(其中GET参数from保留他在重定向之前尝试访问的路线)并重定向到"输入/来自& #34;成功登录后的网址 - > 完成即可。很简单,但它工作正常!

在JavaScript中你的直接看起来像这样:

window.location = window.location.origin + 
                    '/login?from=' +  
                     encodeURI((location.pathname+location.search).substr(1))

这个结果例如:

  

http://www.test.com/login?from=/user/profile/me

答案 1 :(得分:0)

原始位置(事件页面URL)作为额外数据包含在登录URL中。

当您的朋友未登录时进入活动页面时,Facebook会发回一个回复,将其浏览器重定向到/login?original=/event-page?之后的额外数据称为查询字符串。当她登录时,Facebook会收到查询字符串数据并发回一个响应,将她的浏览器重定向到事件页面。

因此原始目的地只保留在URL中。

相关问题