我正在开发一个应用程序,我希望用户使用fb或Google帐户登录。到目前为止,我一直在使用Xamarin Auth,它使用webview提供OAuth身份验证。
由于我想在市场上发布应用程序,我检查了该组件的未来弃用情况。谷歌宣布他们将于2017年4月20日起阻止任何网络视图OAuth ......
您是否找到了Xamarin Auth for google登录的解决方案?
我已经看过25天前由xamarin发布的FireBase组件......但是我想知道它是否适用于表单,因为它是一个xamarin android组件...而且我想保持逻辑“表格是跨平台的“我不想为每个项目使用插件。
我一直在寻找网络,但没有解决方案......
如果有人在没有组件的情况下找到了某些东西或变通方法,我很高兴。
答案 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)