2013-05-21 3 views
0

У нас есть приложение, использующее Facebook SDK для входа в систему.
Мы поддерживаем iOS 6 с именем пользователя и Safari.Возможно ли продлить Xamarin.Auth или Xamarin.Social для поддержки родного входа iOS 6 с возвратом в Safari?

В ближайшее время мы добавим поддержку Twitter.
Мы также хотим внедрить логин iOS 6 с поддержкой Safari.

Есть ли какой-либо код в Xamarin.Auth или Xamarin.Social, который мы можем использовать повторно, или нам нужно написать его с нуля? Нам нужно иметь возможность извлекать токены доступа, хранить их и проверять подлинность запросов.

Я пробовал написать свой собственный аутентификатор для Xamarin.Auth, но его дизайн настаивает, что я предоставляю контроллер просмотра для аутентификации, тогда как мне нужно либо показать диалоговое окно iOS 6 auth, либо Safari.

ответ

2

Xamarin.Auth.Authenticator sublcasses - это единые методы аутентификации, нет встроенного резервного механизма. Вам нужно будет выбрать, хотите ли вы использовать родной или сафари ранее в этом процессе, а затем использовать для этого подходящий Authenticator.

Authenticator s Предоставляет как средства для предоставления информации (через, скажем, веб-страницу с использованием WebRedirectAuthenticator), так и для получения токенов пользователя и другой информации. Например, OAuth2Authenticator использует WebRedirectAuthenticator, чтобы перейти на страницу авторизации, а затем извлечь токены доступа из перенаправления.

Xamarin.Social использует Authenticator, когда вы открываете страницу совместного использования, и вам необходимо пройти аутентификацию и вместе с Xamarin.Auth использует Authenticator при создании запросов на включение необходимой информации авторизации.

+0

Но тогда мне не нужен аутентификатор, не так ли? Смысл, если Safari дает мне токен доступа, мне не нужно будет использовать классы «Authenticator», правильно? –

+0

Я добавил больше информации в свой ответ, чтобы надеяться сделать все более ясным. – ermau

+0

Благодарим за разъяснения. Поэтому, если я хочу использовать аутентификацию Safari для Twitter, мне нужно будет вручную создать «учетную запись» с «access_token», которую я получил из Safari, сохранить его, а затем использовать «TwitterService» с этой учетной записью, не так ли? –