没有网页浏览的OAuth Google的任何解决方案

时间:2017-05-03 10:13:02

标签: c# android xamarin xamarin.forms

  

我正在开发一个应用程序,我希望用户使用fb或Google帐户登录。到目前为止,我一直在使用Xamarin Auth,它使用webview提供OAuth身份验证。

由于我想在市场上发布应用程序,我检查了该组件的未来弃用情况。谷歌宣布他们将于2017年4月20日起阻止任何网络视图OAuth ......

您是否找到了Xamarin Auth for google登录的解决方案?

我已经看过25天前由xamarin发布的FireBase组件......但是我想知道它是否适用于表单,因为它是一个xamarin android组件...而且我想保持逻辑“表格是跨平台的“我不想为每个项目使用插件。

我一直在寻找网络,但没有解决方案......

如果有人在没有组件的情况下找到了某些东西或变通方法,我很高兴。

2 个答案:

答案 0 :(得分:0)

去参观Xamarin.Auth repo,Xamarin论坛,Xamarin Chat(社区团队),你会发现,因为nuget versio 1.4.0 Xamarin.Auth支持NativeUI(Chrome自定义标签和Safari ViewController)。

1.5.0-alpha有Xamarin.Forms支持(Android和iOS,Windows没有彻底测试)

关于Firebase - 适用于Android和iOS的Firebase Auth组件

https://components.xamarin.com/view/firebaseiosauth

https://components.xamarin.com/view/firebase-auth

对于Xamarin.Forms,使用DependencyService或CustomRenderer包装它们。

答案 1 :(得分:-1)

我没有Xamarin.Auth和WebViews就这样做了。

1.在外部浏览器中打开带有“https://accounts.google.com/o/oauth2/auth?client_id& {other_params}”的网址 - 例如

Device.OpenUri(...);

2.Listen to App Started from a redirect URI like“yourapp-youtube” 在AppDelegate.cs中的iOS下

override bool OpenUrl(...)

3.从youtube中解析响应。它将包含带有令牌信息等的数据字符串(我认为是base64)。

4.反序列化并将其保存到数据库

5.如果令牌过期,则定期检查(如果过期则调用刷新端点“https://accounts.google.com/o/oauth2/token” - 例如直接从PCL使用HttpClient)