基本身份验证(用于Google Checkout)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基本身份验证(用于Google Checkout)相关的知识,希望对你有一定的参考价值。

Using GCheckout.dll

Join("") is an IEnumerable extension I wrote (to concatenate strings with a separator)
Base64Decode() is a string extension I wrote (decode base64)

Configuration.Google[Test]Merchant{Id|Key} are just some static variables holding my info.
  1. private GCheckout.EnvironmentType CheckAuthorization(string authHeader)
  2. {
  3. if (string.IsNullOrEmpty(authHeader))
  4. {
  5. Logger.Debug("No Authorization Header");
  6. return GCheckout.EnvironmentType.Unknown;
  7. }
  8.  
  9. if (authHeader.Contains("Basic"))
  10. authHeader = authHeader.Substring(authHeader.IndexOf("Basic") + 5);
  11.  
  12. var base64Auth = authHeader.Trim().Base64Decode();
  13.  
  14. var userPass = base64Auth.Split(':');
  15.  
  16. if (userPass.Length < 2)
  17. {
  18. Logger.Debug("Authorization Header was malformed. Raw: " + authHeader + ", Base64Decoded: " + base64Auth);
  19. return GCheckout.EnvironmentType.Unknown;
  20. }
  21. if (userPass.Length > 2)
  22. userPass[1] = userPass.Skip(1).Join("");
  23.  
  24. if (userPass[0] == Configuration.GoogleMerchantId &&
  25. userPass[1] == Configuration.GoogleMerchantKey)
  26. {
  27. return GCheckout.EnvironmentType.Production;
  28. }
  29. else if (userPass[0] == Configuration.GoogleTestMerchantId &&
  30. userPass[1] == Configuration.GoogleTestMerchantKey)
  31. {
  32. return GCheckout.EnvironmentType.Sandbox;
  33. }
  34. else
  35. {
  36. return GCheckout.EnvironmentType.Unknown;
  37. }
  38. }

以上是关于基本身份验证(用于Google Checkout)的主要内容,如果未能解决你的问题,请参考以下文章

asp.net mvc 中的 Google 身份验证 - 无法获取用于 Google 登录的 redirectUrl

用于 Google 登录的 Android Firebase 身份验证失败

如何为 Google Cloud Scheduler 设置基本身份验证

Google Drive API - 未收到推送通知(基本身份验证)

除了 AppDelegate 和 UIViewController 之外的一个类中的 GIDSignInDelegate 使用示例,用于 swift 中的 Google 身份验证

Xamarin.Auth OAuth Google API,用于Android的用户身份验证