通过 WebView 的 Xamarin oauth

Xamarin oauth through WebView

几天来,我一直在尝试在 Xamarin Forms 应用程序中实施 google OAuth。我有一个非常简单的 XAML 代码

<?xml version="1.0" encoding="utf-8" ?>

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         xmlns:local="clr-namespace:Google.ViewModels"
         x:Class="Google.MainPage">
<ContentPage.BindingContext>
    <local:MainPageViewModel/>
</ContentPage.BindingContext>
<StackLayout>
    <WebView Source="{Binding OAuthRequestUrl}" 
             VerticalOptions="FillAndExpand" 
             HorizontalOptions="FillAndExpand"/>
</StackLayout>

ViewModel

public string OAuthRequestUrl 
{ 
    get 
    {
        string oauthReuest = string.Format(
            "https://accounts.google.com/o/oauth2/v2/auth?client_id={0}&redirect_uri={1}&response_type={2}&scope={3}", 
            clientId, 
            redirectUrl, 
            responceType, 
            scope);
        return oauthReuest;
    } 
}

但是在 webview 初始化后我得到了 403: disalloed_useragent。 最初我通过浏览器 + 邮递员使用 Web 客户端凭据和 OAuth 成功完成。

您需要更改 WebView 控件的用户代理。

遗憾的是,目前不支持此功能,但您可以在此处找到一些解决方法:https://github.com/xamarin/Xamarin.Forms/issues/8432