【问题标题】:PayPal oauth2 authorization and .net corePayPal oauth2 授权和 .net 核心
【发布时间】: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


    【解决方案1】:

    这似乎是一个古老的整合。我建议从头开始关注https://developer.paypal.com/docs/log-in-with-paypal/integrate/,它可以用任何语言实现。

    根据授权的范围,刷新令牌用于获取访问令牌,然后可用于获取有关用户的信息(或执行涉及其帐户的 API 操作)。

    【讨论】:

      猜你喜欢
      • 2020-02-16
      • 2018-03-13
      • 1970-01-01
      • 1970-01-01
      • 2017-06-26
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 2019-10-13
      相关资源
      最近更新 更多