63 lines
1.3 KiB
Go
63 lines
1.3 KiB
Go
// Copyright 2024 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package oauth2
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/markbates/goth"
|
|
"golang.org/x/oauth2"
|
|
)
|
|
|
|
type fakeProvider struct{}
|
|
|
|
func (p *fakeProvider) Name() string {
|
|
return "fake"
|
|
}
|
|
|
|
func (p *fakeProvider) SetName(name string) {}
|
|
|
|
func (p *fakeProvider) BeginAuth(state string) (goth.Session, error) {
|
|
return nil, nil
|
|
}
|
|
|
|
func (p *fakeProvider) UnmarshalSession(string) (goth.Session, error) {
|
|
return nil, nil
|
|
}
|
|
|
|
func (p *fakeProvider) FetchUser(goth.Session) (goth.User, error) {
|
|
return goth.User{}, nil
|
|
}
|
|
|
|
func (p *fakeProvider) Debug(bool) {
|
|
}
|
|
|
|
func (p *fakeProvider) RefreshToken(refreshToken string) (*oauth2.Token, error) {
|
|
switch refreshToken {
|
|
case "expired":
|
|
return nil, &oauth2.RetrieveError{
|
|
ErrorCode: "invalid_grant",
|
|
}
|
|
default:
|
|
return &oauth2.Token{
|
|
AccessToken: "token",
|
|
TokenType: "Bearer",
|
|
RefreshToken: "refresh",
|
|
Expiry: time.Now().Add(time.Hour),
|
|
}, nil
|
|
}
|
|
}
|
|
|
|
func (p *fakeProvider) RefreshTokenAvailable() bool {
|
|
return true
|
|
}
|
|
|
|
func init() {
|
|
RegisterGothProvider(
|
|
NewSimpleProvider("fake", "Fake", []string{"account"},
|
|
func(clientKey, secret, callbackURL string, scopes ...string) goth.Provider {
|
|
return &fakeProvider{}
|
|
}))
|
|
}
|