2016-09-17 35 views
0

我希望能夠在GitHub OAuth的單獨路由中使用authenticate(用於註冊GitHub)和authorize(用於將GitHub帳戶鏈接到現有帳戶)。我使用兩種不同的路由處理LinkedIn OAuth,一個呼叫passport.authenticate(),另一個呼叫passport.authorize()。儘管GitHub只允許你有一個回調URL。如何爲GitHub OAuth實現/破解兩個回調URL

我發現這個post解釋了一種解決方法,但不知道如何實現答案。

下面是我設置Linkedin OAuth的工作正常。

router.get('/auth/linkedin', passport.authenticate('linkedin')); 
router.get('/auth/linkedin/callback', passport.authenticate('linkedin', { 
    failureRedirect : '/app/#/login' 
}), function(req, res){ 
    res.redirect('/app/#/profile'); 
}); 

router.get('/connect/linkedin', 
    passport.authorize('linkedin', { 
     failureRedirect: '/app/#/login' }) 
); 
router.get('/connect/linkedin/callback', 
    passport.authorize('linkedin', { 
     successRedirect : '/app/#/profile', 
     failureRedirect : '/app/#/login' 
    }) 
); 

回答

0

如果兩個網址都是同一個域,端口和協議,您可以speciy URL是您要使用的那些上面,例如:

如果您的網頁上 https://example.com/oauth/authorizehttps://example.com/oauth/authenticate

你可以將https://example.com/oauth設置爲github中的回調URL,並將請求中的redirect_uri參數放入github中。

更多這裏: https://developer.github.com/v3/oauth/#redirect-urls