在ASP.NET Core 3.1中用Linkedin注册登录。

问题描述 投票:0回答:1

我在我的web项目中使用ASP.NET Core 3.1 Individual Authentication Template。我正试图整合LinkedIn外部登录,但不知道如何正确地进行。

我使用了以下链接寻求帮助。OAuth LinkedIn集成

这是我的代码。

services.AddAuthentication()
            .AddOAuth("LinkedIn", "LinkedIn", options =>
            {
                IConfigurationSection linkedinAuthNSection =
                Configuration.GetSection("Authentication:Linkedin");

                options.ClientId = linkedinAuthNSection["ClientId"];
                options.ClientSecret = linkedinAuthNSection["ClientSecret"];

                options.CallbackPath = new PathString("/signin-linkedin");
                options.AuthorizationEndpoint = "https://www.linkedin.com/oauth/v2/authorization";
                options.TokenEndpoint = "https://www.linkedin.com/oauth/v2/accessToken";
                options.UserInformationEndpoint = "https://api.linkedin.com/v1/people/~:(id,formatted-name,email-address,picture-url)";
                options.Scope.Add("r_liteprofile");
                options.Scope.Add("r_emailaddress");
                options.Scope.Add("w_member_social");
            });

但我得到错误的 OnGetCallbackAsync 处理程序在:

var info = await _signInManager.GetExternalLoginInfoAsync();

价值为 info 已收到 null

c# asp.net-core-2.1 asp.net-core-identity asp.net-core-3.1 .net-core-3.1
1个回答
1
投票

在尝试了多种选择后,我只是发现了一个github repo和nuget包的Linkedin外部登录,它是完美的工作,没有任何额外的代码,就像微软官方文档的谷歌和Facebook登录。

我的代码。

services.AddAuthentication()
            .AddLinkedIn(options =>
            {
                IConfigurationSection linkedinAuthNSection =
                Configuration.GetSection("Authentication:Linkedin");

                options.ClientId = linkedinAuthNSection["ClientId"];
                options.ClientSecret = linkedinAuthNSection["ClientSecret"];
            });

Nuget包: AspNet.Security.OAuth.LinkedIn

Github Repo.AspNet.Security.OAuth.Providers AspNet.Security.OAuth.Providers

超过60个供应商集成,包括Instagarm,Dropbox,Soundcloud等。完整的列表可在github链接。

只需替换 ProvidersAspNet.Security.OAuth.Providers 与您所需的提供商名称。一些例子是

Instagram.AspNet.Security.OAuth.Instagram AspNet.Security.OAuth.Instagram

Dropbox.AspNet.Security.OAuth.Dropbox AspNet.Security.OAuth.Dropbox

Apple.AspNet.Security.OAuth.Apple AspNet.Security.OAuth.Apple

© www.soinside.com 2019 - 2024. All rights reserved.