2016-11-19 114 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