0
我有一個子域上的api:api.exemple.com用symfony2和我在exemple.com上的主應用程序(SPA-AngularJs)編寫。子域和oauth上的API
我想允許用戶鏈接他們的facebook帳戶與他們的本地帳戶。我不知道如何繼續以通過我的應用程序進行身份驗證並使用第三方oauth提供程序。
你有什麼線索嗎?
謝謝
我有一個子域上的api:api.exemple.com用symfony2和我在exemple.com上的主應用程序(SPA-AngularJs)編寫。子域和oauth上的API
我想允許用戶鏈接他們的facebook帳戶與他們的本地帳戶。我不知道如何繼續以通過我的應用程序進行身份驗證並使用第三方oauth提供程序。
你有什麼線索嗎?
謝謝
在角端,打開一個新的窗口中啓動,併發送您的OAuth處理GET請求:
self.oauthConnect = function(provider)
{
var url = apiPrefix + '/oauth/tokens/'. provider;
oauthWindow = $window.open(url,'_blank', 'height=600, width=600, top=100, left=300, modal=yes');
oauthWindow.focus();
};
你的PHP API網站,然後重定向到OAuth的提供商網站(即Facebook的)。我們使用新的客戶端窗口,因此儘管重定向,我們的SPA仍在運行。提供者然後顯示他們的登錄屏幕並用oauth令牌信息重定向。
你的PHP API網站做它需要的東西,並生成實際的授權令牌(提示:使用JSON Web令牌)。該網站然後返回一個HTML頁面回你的角度的應用程序。
<body>
<script>
window.opener.oauthCallback('<?php echo $oauthToken; ?>');
</script>
</body>
然後,您的角度控制器(打開窗口)將使用oauth標記進行調用。
$window.oauthCallback = function(oauthToken)
{
oauthWindow.close();
oauthWindow = null;
authManager.oauthToken = oauthToken;
self.oauthSubmit();
};
容易吧?那麼不是真的,但它的作品。在我的情況下,我右轉和:
POST /auth/tokens/oauthToken
得到真正的應用程序令牌。這樣我的oauth服務可以用於多個應用程序。
謝謝。這正是我期待的! – user3100287 2015-08-20 20:49:29