Xamarin Plaid OAuth - Xamarin 的 WebAuthenticator 是否支持使用 https:// 重定向?



我正试图将API的银行Plaid OAuth部分实现到我的Xamarin应用程序中,并且遇到了很多麻烦。对于初学者来说,Plaid需要一个OAuth回调URLhttps://yoururlhere.com,如果WebAuthenticator支持它,我就无法弄清楚。我只看到了packagename

的例子Plaid允许Android包名,但不允许iOS…我应该这样做吗?那么iOS会发生什么呢?我需要实现这两个Android和iOS。从我的理解,我没有离开我的Xamarin应用程序,因为这都是通过webview完成的,因此遵循这种方法并不是真的有意义?

为了更好地理解我要做什么,我简化了下面的代码和名称。
MainViewModel.cs

// successfully has linkToken before this point
var authResult = await WebAuthenticator.AuthenticateAsync(
new Uri("https://cdn.plaid.com/link/v2/stable/link.html?isWebview=true&token=" + linkToken),
new Uri("https://someurl.net/link/v2/oauth/redirect")
);

WebAuthenticationCallbackActivity.cs.

[Activity(NoHistory = true, LaunchMode = LaunchMode.SingleTop, Exported = true)]
[IntentFilter(new[] { Android.Content.Intent.ActionView },
Categories = new[] { Android.Content.Intent.CategoryDefault, Android.Content.Intent.CategoryBrowsable },
DataScheme = "https")]
public class WebAuthenticationCallbackActivity : Xamarin.Essentials.WebAuthenticatorCallbackActivity
{
public override void OnCreate(Bundle savedInstanceState, PersistableBundle persistentState)
{
base.OnCreate(savedInstanceState, persistentState);
}
}

这里的数据方案应该是什么?仅仅是https://?还是我的完整URL?

AndroidManifest.xaml
我已经在这里添加了正确的必需品
我还没有机会看iOS必需品,但我们现在可以忽略它们。

我还需要拦截这个回调,并从重定向的URL发出新的http请求来完成令牌,我不确定如何做到这一点

任何帮助实现这一点的任何部分将非常感激

Microsoft文档提供了关于Xamarin的示例。要点:Web Authenticator

对于Android, Android需要一个Intent Filter设置来处理你的回调URI。这可以通过创建WebAuthenticatorCallbackActivity类的子类来实现。

const string CALLBACK_SCHEME = "myapp";
[Activity(NoHistory = true, LaunchMode = LaunchMode.SingleTop, Exported = true)]
[IntentFilter(new[] { Android.Content.Intent.ActionView },
Categories = new[] { Android.Content.Intent.CategoryDefault, Android.Content.Intent.CategoryBrowsable },
DataScheme = CALLBACK_SCHEME)]
public class WebAuthenticationCallbackActivity : Xamarin.Essentials.WebAuthenticatorCallbackActivity
{
}

相关内容

  • 没有找到相关文章

最新更新