Google недавно объявили, что в июне они начнут блокировать входы из встроенных структур браузера:
[1]
https://venturebeat.com/2019/04/18/google-will-begin-to-block-sign-ins-from-embedded-browser-frameworks-in-june/
Я довольно новичок в разработке UWP и использую в своем приложении Google SSO с собственным веб-браузером. У меня такой вопрос: является ли нативный веб-просмотр одним из браузеров, которые Google будет блокировать, и если да, каковы альтернативы?
это мой код для использования единого входа в Google:
XAML:
<views:MvxWindowsPage
x:Class="Windows.Views.GoogleSSOView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:uc="using:Windows.UserControls"
xmlns:views="using:Cirrious.MvvmCross.WindowsCommon.Views"
mc:Ignorable="d">
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<WebView x:Name="googleWebView"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"/>
</Grid>
.cs:
public sealed partial class GoogleSSOView : MvxWindowsPage
{
const string tokenEndpoint = "https://www.googleapis.com/oauth2/v4/token";
const string googleapisString = "www.googleapis.com";
public GoogleSSOView()
{
this.InitializeComponent();
this.Loaded += GoogleSSOView_Loaded;
googleWebView.NavigationStarting += webView_NavigationStarting;
}
private void GoogleSSOView_Loaded(object sender, RoutedEventArgs e)
{
var context = this.DataContext as GoogleSSOViewModel;
if (context != null)
{
context.NavigateToURL += NavigateToUrl;
}
if (!String.IsNullOrEmpty(context.Url))
{
NavigateToUrl(context.Url);
}
}
private void NavigateToUrl(string url)
{
if (!String.IsNullOrEmpty(url))
{
googleWebView.Navigate(new Uri(url));
}
}
void webView_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
{
if (args.Uri.ToString() != null && args.Uri.ToString().Contains(googleapisString))
{
parseURI(args.Uri.ToString());
}
}
}