【发布时间】:2022-10-13 00:15:09
【问题描述】:
所以我试图在我的 .net 核心应用程序中设置 PayPal 登录。我正在使用这个 3rd 方库来这样做:https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers
我正在 Umbraco CMS 上构建我的应用程序,并在适当的部分中使用以下内容:
builder.AddMemberExternalLogins(logins =>
{
logins.AddMemberLogin(
memberAuthenticationBuilder =>
{
memberAuthenticationBuilder.AddPaypal(
memberAuthenticationBuilder.SchemeForMembers(PayPalMemberExternalLoginProviderOptions.SchemeName),
options =>
{
options.ClientId = clientId;
options.ClientSecret = clientSecret;
});
});
});
开箱即用,这是行不通的。从周围阅读看来,授权端点似乎正在使用实时值,这些不适合使用 Paypal 的沙盒端点进行测试。
阅读以下线程后:https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers/issues/198 我可以看到该用户必须手动更新端点以使用不同的值:
.AddPaypal(options =>
{
options.ClientId = Startup.Configuration["Authentication:Paypal:ClientId"];
options.ClientSecret = Startup.Configuration["Authentication:Paypal:ClientSecret"];
options.AuthorizationEndpoint = "https://www.sandbox.paypal.com/webapps/auth/protocol/openidconnect/v1/authorize";
options.TokenEndpoint = "https://api.sandbox.paypal.com/v1/identity/openidconnect/tokenservice";
options.UserInformationEndpoint = "https://api.sandbox.paypal.com/v1/identity/openidconnect/userinfo?schema=openid";
})
现在一旦更新这些值,授权似乎去工作。但是我发现它非常不可靠。在我的个人开发机器上,它似乎允许我授权,但在与另一位同事测试时,他发现他经常注销,有时根本没有授权。
当我查看上一个线程时,我可以看到这是在 2017 年编写的,我想知道端点是否已更新或流程已被 Paypal 完全更改,但我找不到任何文档。
基本上,我正在寻找在我的应用程序中集成 Paypal 登录的最简单方法。当我阅读 Paypal 的文档 (https://developer.paypal.com/docs/log-in-with-paypal/integrate/) 时,我只看到提到刷新令牌,我没有看到任何关于授权端点或用户信息端点的信息。
我很困惑,我想知道是否有人在 2022 年成功地使用 .net 核心应用程序设置了 Paypal 登录,以及他们是否有任何示例代码。
任何指针将不胜感激。谢谢。
【问题讨论】:
标签: c# asp.net-core oauth-2.0 paypal