Как избежать перенаправления экрана URL после того, как oauth завершит использование xamarin.auth для входа в Linkedin?
У меня есть вход в LinkedIn с использованием xamarin.auth. После успешного завершения Oauth экран перенаправления URL-адреса появляется на 1 секунду вместо прямого перехода на экран приложения. Через 1 секунду появится экран приложения. Как я могу избежать этого экрана перенаправления URL.
Я использовал ниже код:
var authenticator = new OAuth2Authenticator(
StringConstants.LinkedInClientId,
StringConstants.ClientSecret,
StringConstants.Scope,
new Uri(StringConstants.AuthorizeUrl),
new Uri(redirectUrl),
new Uri(StringConstants.AccessTokenUrl));
// redirectUrl является действительным URL сайта.
authenticator.Completed += OnAuthCompleted;
authenticator.Error += OnAuthError;
authenticator.ShowErrors = false;
var presenter = new Xamarin.Auth.Presenters.OAuthLoginPresenter();
presenter.Login(authenticator);
После вышеуказанного входа в систему я получаю обратный вызов в следующем методе:
void OnAuthCompleted(object sender, AuthenticatorCompletedEventArgs e)
{
Account account =
store.FindAccountsForService(DeploymentConstants.AppTitle).FirstOrDefault();
var authenticator = sender as OAuth2Authenticator;
if (authenticator != null)
{
authenticator.Completed -= OnAuthCompleted;
authenticator.Error -= OnAuthError;
}
if (e.IsAuthenticated)
{
var values = e.Account.Properties;
var access_token = values["access_token"];
Settings.AuthData = access_token;
if (account != null)
{
store.Delete(account, DeploymentConstants.AppTitle);
}
store.Save(account = e.Account, DeploymentConstants.AppTitle);
}
}
Затем в дальнейшем потоке я звоню: жду Navigation.PopModalAsync();
Пожалуйста, руководство.
1 ответ
Похоже, вы используете "Embedded WebView", а не "Native UI".
В "Embedded WebView" загружен Xamarin.Auth redirect_url
в WebView, чтобы параметры OAuth могли быть проанализированы API. Я не могу сказать, почему это занимает 1 секунду - скорее всего, JavaScript на redirect_url
, Попробуйте изменить его на другой "действующий URL-адрес веб-сайта" и сравните время.