Instagram OAuth 提供商 - 身份验证问题

Posted

技术标签:

【中文标题】Instagram OAuth 提供商 - 身份验证问题【英文标题】:Instagram OAuth Provider - Authentication issue 【发布时间】:2018-08-26 02:32:13 【问题描述】:

我正在尝试使用 Instagram 作为 .Net Core 2.0 应用程序中的外部登录提供程序进行身份验证。 我的中间件配置如下所示: 启动.cs

services.AddAuthentication().AddInstagram(options =>

   options.ClientId = ApplicationSettings.InstagramSettings.ApplicationId;
   options.ClientSecret =ApplicationSettings.InstagramSettings.ApplicationSecret;
   options.Scope.Add(ApplicationSettings.InstagramSettings.Permissions);
   options.SaveTokens = true; 
);

AccountController 中的ExternalLogin 方法不变:

    [HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public IActionResult ExternalLogin(string provider, string returnUrl = null)
    
        // Request a redirect to the external login provider.
        var redirectUrl = Url.Action(nameof(ExternalLoginCallback), "Account", new  returnUrl );
        var properties = _signInManager.ConfigureExternalAuthenticationProperties(provider, redirectUrl);

        return Challenge(properties, provider);
    

然而,当

var info = await _signInManager.GetExternalLoginInfoAsync();

在 ExternalLoginCallback() 中调用,结果为 null。

注意:

这对于 Facebook 提供商来说非常适用,中间件配置中没有其他设置。 如果我在 Fiddler 中检查网络活动,我可以看到 Instagram 成功地将 access_token 发送回我的应用程序,只是 GetExternalLoginInfoAsync() 无法读取它。

有什么想法吗?

【问题讨论】:

【参考方案1】:

我使用的 Instagram OAuth 提供程序版本 (2.0.0-rc2-final) 中存在一个错误,该错误会阻止正确处理用户信息响应。 我切换到修复了错误的包的最新 RTM nightly 版本。

【讨论】:

以上是关于Instagram OAuth 提供商 - 身份验证问题的主要内容,如果未能解决你的问题,请参考以下文章

Instagram 客户端身份验证在重定向后缺少#access_token

自定义登录 Instagram API iOS

Meteor OAuth 服务器错误:无法完成与 Instagram 的 OAuth 握手

来自本机应用的 Instagram API OAuth

使用 Oauth2 在 Instagram 上发布图片 - PHP

https://api.instagram.com/oauth/authorize api登录错误