Add new argument to force a renewal of the token

This commit is contained in:
Thomas Schwery 2017-07-13 11:02:57 +02:00
parent 0ba611b36b
commit 489e4335e1
2 changed files with 14 additions and 8 deletions

View file

@ -41,7 +41,10 @@ var (
)
// GetTokenURL -
func GetTokenURL() string {
func GetTokenURL(config *HTTPConfiguration) string {
googleOauthConfig.ClientID = config.ClientID
googleOauthConfig.ClientSecret = config.ClientSecret
url := googleOauthConfig.AuthCodeURL(oauthStateString, oauth2.AccessTypeOffline)
// https://eveonline-third-party-documentation.readthedocs.io/en/latest/sso/authentication.html

17
main.go
View file

@ -60,6 +60,7 @@ var (
cacheDBPath = flag.String("cache", "cache.ldb", "Path to the cache leveldb database.")
insecureFlag = flag.Bool("insecure", false, "Do not check the HTTPS certificate")
logCalls = flag.Bool("httplog", false, "Log HTTP calls")
renewToken = flag.Bool("renewToken", false, "Renew the token even if it is still valid")
)
var ctx = context.Background()
@ -95,8 +96,8 @@ func main() {
cToken := getDatabaseToken()
if cToken == nil {
cToken = getNewAuthorizationToken()
if cToken == nil || *renewToken {
cToken = getNewAuthorizationToken(httpConfiguration)
}
httpConfiguration.ConnectionToken = cToken
@ -106,7 +107,7 @@ func main() {
m, err := getCharacterInfo(client)
if err != nil {
log.Println(err)
cToken = getNewAuthorizationToken()
cToken = getNewAuthorizationToken(httpConfiguration)
httpConfiguration.ConnectionToken = cToken
client = InternalUtils.GetDefaultClient(cacheDB, httpConfiguration)
@ -1000,9 +1001,10 @@ func getSchematicsInformation(swaggerclient *ESI.App, schematicID int32) (*Schem
return &schematicInfo, nil
}
func getNewAuthorizationToken() *oauth2.Token {
http.HandleFunc("/", handleLogin)
func getNewAuthorizationToken(httpConfiguration *InternalUtils.HTTPConfiguration) *oauth2.Token {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { handleLogin(w, r, httpConfiguration) })
http.HandleFunc("/callback", handleAuthenticationCallback)
go func() {
fmt.Println("No available token. Please visit http://localhost:3000 to renew.")
http.ListenAndServe(":3000", nil)
@ -1011,8 +1013,9 @@ func getNewAuthorizationToken() *oauth2.Token {
return <-messages
}
func handleLogin(w http.ResponseWriter, r *http.Request) {
url := InternalUtils.GetTokenURL()
func handleLogin(w http.ResponseWriter, r *http.Request, httpConfiguration *InternalUtils.HTTPConfiguration) {
url := InternalUtils.GetTokenURL(httpConfiguration)
log.Printf("URL will be %s\n", url)
http.Redirect(w, r, url, http.StatusTemporaryRedirect)
}