首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IntentFilter不使用HTTP重定向URL

IntentFilter不使用HTTP重定向URL
EN

Stack Overflow用户
提问于 2020-01-21 22:50:44
回答 1查看 942关注 0票数 0

TL;DR:

IntentFilter授权完成并且重定向URL的导航发生时,LinkedIn不会截取LinkedIn。

看起来,只有当打开一个新的选项卡时,IntentFilter才能拦截这样的URL,而不是在导航时。

而且,由于LinkedIn只接受带有HTTP/HTTPS的重定向URL,所以我有点被锁定在这个问题上。我现在唯一的解决方案是使用WebView

我试图添加一个“登录与LinkedIn”按钮到我的Xamarin.Forms应用程序。我使用的是Xamarin.AuthCustom Tabs方法。

这意味着,为了获得登录+授权的结果,我需要使用IntentFilter。使用Google的auth正在工作,因为我复制了从这里开始,但是使用LinkedIn的auth并没有被IntentFilter截获。

我不知道怎么回事。也许重定向网址不正确,或者我的IntentFilter有一些问题。

我试过使用不同的URL,甚至localhost:PORT也没有成功。

IntentFilter:

代码语言:javascript
复制
[Activity(Label = "LinkedInInterceptorActivity", NoHistory = true, LaunchMode = LaunchMode.SingleTop)]
[IntentFilter(new[] { Intent.ActionView }, Categories = new[] { Intent.CategoryDefault, Intent.CategoryBrowsable },
    DataSchemes = new[] { "http", "https" }, DataHost = "www.linkedin.com", DataPath = "/Act/Callback")]
public class LinkedInInterceptorActivity : Activity
{
    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);

        //Convert Android.Net.Url to Uri
        var uri = new Uri(Intent.Data.ToString());

        //Load redirectUrl page
        Global.Authenticator.OnPageLoading(uri);

        var intent = new Intent(this, typeof(MainActivity));
        intent.SetFlags(ActivityFlags.ClearTop | ActivityFlags.SingleTop);
        StartActivity(intent);

        Finish();
    }
}

LinkedIn配置:

EN

回答 1

Stack Overflow用户

发布于 2020-01-21 23:50:38

我不认为你的授权URL是正确的。它应该是“/oauth/v2/授权”,您正在使用"/Act/Callback“

我不熟悉“自定义Tabs”方法,但我可以设想使用OAuth进行身份验证所需的相同基本步骤。

您的重定向URL应该是用户在其站点上进行身份验证后LinkedIn调用的位置。这可能类似于"http://www.yoursite.com/oauth/v2/linkedin“。您的应用程序需要配置为侦听传入的http或https连接的地址。这通常是一个web服务器,但在C#,HttpListener也能工作。Xamarin.Auth可能已经为您内置了此功能,但我不熟悉OAuth的确切实现。(你说它对谷歌有效,所以我想它在某种程度上是可行的)

如果您的应用程序在多个设备上独立运行,可能不可能将所有设备地址添加到允许重定向的列表中。如果是这种情况,则必须设置类似于以下内容的应用程序:

App通知yoursite.com它正在等待认证。App将用户引导到LinkedIn进行身份验证。LinkedIn调用yoursite.com (这是允许的重定向)并发送身份验证结果。yoursite.com将身份验证结果转发给正在等待身份验证结果的应用程序。

无论如何,对于OAuth流来说,似乎还有比您想象的更多的东西。请参见:

https://learn.microsoft.com/en-us/linkedin/shared/authentication/authorization-code-flow?context=linkedin/context

https://learn.microsoft.com/en-us/linkedin/shared/authentication/client-credentials-flow?context=linkedin/context

有关如何使用LinkedIn连接到OAuth的特定信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59850357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档