2013-05-21 43 views
0

我們有一款使用Facebook SDK進行登錄的應用。
我們支持iOS 6本地登錄,並回退到Facebook應用和Safari。擴展Xamarin.Auth或Xamarin.Social以支持原生iOS 6登錄並退回到Safari可行嗎?

我們即將加入Twitter支持。
我們還希望通過Safari fallback實現iOS 6登錄。

Xamarin.Auth或Xamarin.Social中有沒有我們可以重複使用的代碼,還是我們需要從頭開始編寫代碼?我們需要能夠檢索訪問令牌,存儲它們並驗證請求。

我試着爲Xamarin.Auth編寫自己的身份驗證器,但其設計堅持我提供了一個視圖控制器進行身份驗證,而我需要顯示iOS 6身份驗證對話框或Safari。

回答

2

Xamarin.Auth.Authenticator sublcasses是單一認證方法,沒有內置的回退機制。您必須選擇是否在流程的早期使用本機或Safari,然後使用適當的Authenticator

Authenticator s提供了用戶提供信息(通過使用WebRedirectAuthenticator的網頁)以及獲得用戶令牌和其他信息的手段。例如,OAuth2Authenticator使用WebRedirectAuthenticator帶您進入授權頁面,然後稍後從重定向中檢索訪問令牌。

Xamarin.Social使用Authenticator當您打開共享撰寫頁面並需要進行身份驗證時,以及Xamarin.Auth使用Authenticator創建請求以包含必要的授權信息。

+0

但是我不需要驗證器,那麼,對吧?意思是,如果Safari給我訪問令牌,我不需要使用'Authenticator'類,對吧? –

+0

我在回答中添加了更多信息,希望能讓事情更清楚。 – ermau

+0

謝謝你的澄清。因此,如果我想使用Safari進行Twitter身份驗證,我需要手動創建一個'Account',其中包含我從Safari獲得的'access_token',將其保存,然後使用'TwitterService'與此帳戶對吧? –