casdoor.go 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package casdoor
  2. import (
  3. "github.com/casdoor/casdoor-go-sdk/casdoorsdk"
  4. "go.uber.org/zap"
  5. "golang.org/x/oauth2"
  6. )
  7. const (
  8. endpoint string = "https://raspberrypi.dev/casdoor"
  9. clientId string = "f7059ed03570512cc79c"
  10. clientSecret string = "437e687903cce3d4aef50f5ab14f863faba41cad"
  11. certificate string = `
  12. -----BEGIN CERTIFICATE-----
  13. MIIE3TCCAsWgAwIBAgIDAeJAMA0GCSqGSIb3DQEBCwUAMCgxDjAMBgNVBAoTBWFk
  14. bWluMRYwFAYDVQQDEw1jZXJ0LWJ1aWx0LWluMB4XDTI1MDUwNzA5NDMwN1oXDTQ1
  15. MDUwNzA5NDMwN1owKDEOMAwGA1UEChMFYWRtaW4xFjAUBgNVBAMTDWNlcnQtYnVp
  16. bHQtaW4wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC6bhrTnADekQLx
  17. KtKiOqehyevrHzXKvBykfjwO6k0oLV9VSMntki2FNASDYTs3eFtG7wqPJoWJuDPC
  18. +XISWIwKc0Bc8trIeQkSiJOvLWF57wOX0HlxvGd6ooRrPe6yAHjMcMtNP5s+DzpO
  19. qfOIOCH9oOFBxHN02VIRoo+ACflI9mkS6TRIAJ8fG5L631qulyYwyq3TJ6vaBxte
  20. 1ZWV0Fh72VD3FaME9pmHdv3IcnX6U2pvwZoN+jSOiaTSCI15+5PFsC3av1k5ZJTH
  21. +Yp7okwVvQRJbwOwM4Lr3eQE7tcUVxLbstVKwhsR2EqtVHRlt+r0SUE72aASaM3m
  22. iWZS8lKJIJxbSRgtf3zOkpZR4zIBU3zdB9OoHykxLlbg4POOLloWMsdVflXbWzRt
  23. Abwo5SSsMq+Yr7+E4EB6ricXz1OvUPELEZa1c6QhTUzeBhrV5ro/QNNN32HCFgu4
  24. ivLxijF7FFGdxFykUArWxEd+d5+lCuHn8lDxYGBvp65G36f8knyOtN4K02cFoNtY
  25. 5l+s9yqkyELfw8it0bkxO609KZd9Xkp3wUloBMdiJ7UxUNIVS0bpL7wkwt/CzPdM
  26. Bm/RAPzkjazKgireWZ0cKv3QfYu4+QC8E7QeXI9Oqm6YCSMPsGJBOM9arA7xZdUc
  27. JZnNstHWHrFihbY1nG6WQwT8ndMYpwIDAQABoxAwDjAMBgNVHRMBAf8EAjAAMA0G
  28. CSqGSIb3DQEBCwUAA4ICAQAri/3HicFl5pu3B2udfdVgxmgUmf1nvPFhuiV7hgIP
  29. 5CVHe2IiDPJYGL55NNqYQpRLTE7Egnz6TMRiVuYKYBHLM2Tb133GpTvXntiwb+D/
  30. FSha4clBJBBHlx7lX8xGy+FIwlWQQzB/O8S1hbRi869Kb91QFIRgbRsW6Bt+0Y+9
  31. OtilWi5scqV28Lt2XyzxsQgsYAu0VOSxFs8Rk1WIvAAciefiPMGAlIpsm52c/0H+
  32. s1LqdPLoj+GF3/iMOd4EIRFGiH3ntdBqYjvf39w90uNn0uWBnVdyu8IsbNU92v84
  33. jdE7sTYMD74Q9rt9JH/dr2Z4ufjRSn6x7mRNxw3oPnMd5qdbB1ux8j5zrJAARRrQ
  34. QKju4s5SB+6WWjALhoMfO7N0wIqoKDleoaGxUj1r4AX9P+wRP0H1W2PV/H0y+el1
  35. gjpPCfs/IZGgWkSvpHI0b6yikTaCZeAgoBPB2sjTWZyeBnkXEM8BGgVjgaoFUwIl
  36. OgE9eIWpTKBvPYYellO+hB47j75BnIF7GImDBIwHvEtk7jw3psaLSYGGoNhcG5X9
  37. xJe+ghCvXu1cz5mvUxMIrUsbUL4zSCsJpkzQQQ+95ZJroGsl6dwewMY8hYhXo7wJ
  38. EikVj20dYSjAC2azqGic6fIDosE+qdT8zzCkmEOJQg42D1eRl+E2KmIThFpIyNp/
  39. Vw==
  40. -----END CERTIFICATE-----
  41. `
  42. organizationName string = "organization_franklinwh_toolbox"
  43. applicationName string = "app-franklinwh-toolbox"
  44. )
  45. func InitAuthConfig() {
  46. casdoorsdk.InitConfig(
  47. endpoint,
  48. clientId,
  49. clientSecret,
  50. certificate,
  51. organizationName,
  52. applicationName,
  53. )
  54. }
  55. func Signin(code, state string) (*oauth2.Token, error) {
  56. token, err := casdoorsdk.GetOAuthToken(code, state)
  57. if err != nil {
  58. zap.L().Error("GetOAuthToken() error", zap.String("err", err.Error()))
  59. return nil, err
  60. }
  61. return token, nil
  62. }
  63. func RefreshToken(refreshToken string) (*oauth2.Token, error) {
  64. token, err := casdoorsdk.RefreshOAuthToken(refreshToken)
  65. if err != nil {
  66. zap.L().Error("GetOAuthToken() error", zap.String("err", err.Error()))
  67. return nil, err
  68. }
  69. return token, nil
  70. }
  71. type CasdoorClaims = casdoorsdk.Claims
  72. func ParseJwtToken(token string) (*CasdoorClaims, error) {
  73. claims, err := casdoorsdk.ParseJwtToken(token)
  74. if err != nil {
  75. return nil, err
  76. }
  77. claims.AccessToken = token
  78. return claims, nil
  79. }