Zub*_*ana 0 c# asp.net-core-identity asp.net-core-2.1 .net-core-3.1 asp.net-core-3.1
我正在为我的 Web 项目使用 ASP .NET Core 3.1 个人身份验证模板。我正在尝试集成 LinkedIn 外部登录,但不知道如何正确执行。
我使用以下链接寻求帮助: OAuth LinkedIn Integration
这是我的代码:
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");
});
Run Code Online (Sandbox Code Playgroud)
但是我在OnGetCallbackAsync处理程序中遇到错误:
var info = await _signInManager.GetExternalLoginInfoAsync();
Run Code Online (Sandbox Code Playgroud)
info接收到的值null
在尝试了多个选项后,我刚刚找到了一个用于linkedin 外部登录的 github 存储库和 nuget 包,它运行良好,没有任何额外的代码,就像谷歌和 Facebook 登录的微软官方文档一样。
我的代码:
services.AddAuthentication()
.AddLinkedIn(options =>
{
IConfigurationSection linkedinAuthNSection =
Configuration.GetSection("Authentication:Linkedin");
options.ClientId = linkedinAuthNSection["ClientId"];
options.ClientSecret = linkedinAuthNSection["ClientSecret"];
});
Run Code Online (Sandbox Code Playgroud)
Nuget 包: AspNet.Security.OAuth.LinkedIn
Github 存储库: AspNet.Security.OAuth.Providers
超过 60 个提供商的集成可用,包括 Instagarm、Dropbox、Soundcloud 等。完整列表可在 github 链接中找到。
只需将Providersfrom替换为AspNet.Security.OAuth.Providers您想要的提供商名称。一些例子是:
Instagram: AspNet.Security.OAuth.Instagram
Dropbox: AspNet.Security.OAuth.Dropbox
苹果: AspNet.Security.OAuth.Apple
| 归档时间: |
|
| 查看次数: |
1326 次 |
| 最近记录: |