gitea源码

providers_test.go 1.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. // Copyright 2024 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package oauth2
  4. import (
  5. "time"
  6. "github.com/markbates/goth"
  7. "golang.org/x/oauth2"
  8. )
  9. type fakeProvider struct{}
  10. func (p *fakeProvider) Name() string {
  11. return "fake"
  12. }
  13. func (p *fakeProvider) SetName(name string) {}
  14. func (p *fakeProvider) BeginAuth(state string) (goth.Session, error) {
  15. return nil, nil
  16. }
  17. func (p *fakeProvider) UnmarshalSession(string) (goth.Session, error) {
  18. return nil, nil
  19. }
  20. func (p *fakeProvider) FetchUser(goth.Session) (goth.User, error) {
  21. return goth.User{}, nil
  22. }
  23. func (p *fakeProvider) Debug(bool) {
  24. }
  25. func (p *fakeProvider) RefreshToken(refreshToken string) (*oauth2.Token, error) {
  26. switch refreshToken {
  27. case "expired":
  28. return nil, &oauth2.RetrieveError{
  29. ErrorCode: "invalid_grant",
  30. }
  31. default:
  32. return &oauth2.Token{
  33. AccessToken: "token",
  34. TokenType: "Bearer",
  35. RefreshToken: "refresh",
  36. Expiry: time.Now().Add(time.Hour),
  37. }, nil
  38. }
  39. }
  40. func (p *fakeProvider) RefreshTokenAvailable() bool {
  41. return true
  42. }
  43. func init() {
  44. RegisterGothProvider(
  45. NewSimpleProvider("fake", "Fake", []string{"account"},
  46. func(clientKey, secret, callbackURL string, scopes ...string) goth.Provider {
  47. return &fakeProvider{}
  48. }))
  49. }