2016-11-19 113 views
1

介绍一个网站:
我在做一个基于this项目。与某些特定功能的PDO PHP-OOP登录/注册脚本,它是一个保护CRSF。这个项目中的CRSF保护是一个随机令牌,并在用户每次登录/注册时验证它。登录与CRSF保护

问题:
因此,这里的渔获物,我怎么登录/注册这个网站从其他网站上?就像Facebook Developers - Login API

澄清事情:
我的问题是这样的:
(所有的网站都不是真的,但它是仅用于演示)


我在pleaselogmein.com这里面的,你可以输入你的登录信息,thisismyproject.com一个领域,它会记录你进来。


或这个例子:
我在stackme.com和我做一个登录表单为Facebook的身份验证和Facebook让我使用他们的API,而使用在自己的网站上我自己的领域登录到Facebook。

+0

[CORS(https://developer.mozilla.org/en-US/docs/Web/HTTP/ Access_control_CORS)用于跨域请求。 '握手'是在身份验证过程中进行的,OP访问站点A并进行身份验证,然后站点B获得通过站点A上的端点请求数据的身份验证代码.CRSF是当您通过请求强制Cookie到域上时,即**不是** 你想做什么。 – KDOT

回答

0

文简要地评论部分解释,使用的方法是CORS

CORS


这使它成为一个内部请求,然后服务器允许的要求,就是我们重新直接请求的想法。

比方说站点A是我们接触到登录域,从站点B的请求是没有必要下手。相反,我们重定向通过OP 站点A的验证门户。一旦OP认证,站点A将重定向到站点B与认证码(通常作为在URI一个GET请求)这样的:

www.sitea.com/someController/someAction?someUrl=www.siteb.com&scope=user.Profile 
www.siteb.com/someController/someAction?someAuth=someCode 

注意,在站点A重定向,我们还包括在URI一些GET请求包含的我们请求,此外,该网站返回URI的,你可以在站点A验证信息的范围。

一旦网站B接收认证,可以创建握手。卷曲请求可以被发送到包含该身份验证和一个关于将被返回的用户响应站点A

www.siteA.com/someController/someAction?someAuth=someCode 

这将返回类似像这样一个JSON编码的响应:

{username: 'someString', 
recentlyVisited: { 
    someDate, 
    someDate, 
}email: 'someString'} 
+0

感谢您的回答。我发现很难学习CORS,有没有教程可以帮助我进行登录? – astronomicalXoom

+0

有很多,这是一个[REST-full API](http://coreymaynard.com/blog/creating-a-restful-api-with-php/)的例子。查找使用oAuth 2.1 – KDOT

+0

如果发生这种情况:我有我的a.com(客户端),它有一个登录表单,登录表单将发送一个请求到b.com(服务器),并检查凭据是正确的。如果凭据是正确的,则给a.com提供一个JSON字符串包含用户信息。我可以ping你吗?或者你可以给我一个**验证** CORS教程使用PHP和JSON + AJAX的链接? – astronomicalXoom