open browser for auth

This commit is contained in:
= 2024-11-26 11:50:33 -07:00
parent d4f9711699
commit 69791e5188
2 changed files with 27 additions and 3 deletions

View File

@ -5,10 +5,13 @@ import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"io" "io"
"log"
"os" "os"
"os/exec"
"path/filepath" "path/filepath"
"runtime"
"github.com/wailsapp/wails/v2/pkg/runtime" wruntime "github.com/wailsapp/wails/v2/pkg/runtime"
) )
const client_id string = "9305aeb8-5ecb-4e7a-b28f-c33aefcfbd8d" const client_id string = "9305aeb8-5ecb-4e7a-b28f-c33aefcfbd8d"
@ -40,6 +43,25 @@ func (a *App) startup(ctx context.Context) {
// Greet returns a greeting for the given name // Greet returns a greeting for the given name
func openbrowser(url string) {
var err error
switch runtime.GOOS {
case "linux":
err = exec.Command("xdg-open", url).Start()
case "windows":
err = exec.Command("rundll32", "url.dll,FileProtocolHandler", url).Start()
case "darwin":
err = exec.Command("open", url).Start()
default:
err = fmt.Errorf("unsupported platform")
}
if err != nil {
log.Fatal(err)
}
}
func (a *App) CheckPrerequisites() { func (a *App) CheckPrerequisites() {
a.Status("Querrying Existing Instances") a.Status("Querrying Existing Instances")
a.Instance.SearchInstances() a.Instance.SearchInstances()
@ -91,5 +113,5 @@ func (App) GetVersions() ([]string, error) {
func (a *App) Status(status string) { func (a *App) Status(status string) {
fmt.Printf("LOG: %s\n", status) fmt.Printf("LOG: %s\n", status)
runtime.EventsEmit(a.Ctx, "status", status) wruntime.EventsEmit(a.Ctx, "status", status)
} }

View File

@ -26,7 +26,7 @@ type McProfile struct {
type devcodeResp struct { type devcodeResp struct {
User_code string User_code string
Device_code string Device_code string
Verification_url string Verification_uri string
Expires_in string Expires_in string
Interval int Interval int
Message string Message string
@ -114,6 +114,8 @@ func AuthCode(a App) (authenticationResp, error) {
codeResp := devcodeResp{} codeResp := devcodeResp{}
json.Unmarshal(data, &codeResp) json.Unmarshal(data, &codeResp)
//display message //display message
fmt.Printf("resp: %s\n", data)
openbrowser(codeResp.Verification_uri)
wruntime.MessageDialog(a.Ctx, wruntime.MessageDialogOptions{Type: wruntime.InfoDialog, Title: "Authentication", Message: codeResp.Message}) wruntime.MessageDialog(a.Ctx, wruntime.MessageDialogOptions{Type: wruntime.InfoDialog, Title: "Authentication", Message: codeResp.Message})
ticker := time.NewTicker(time.Second * time.Duration(codeResp.Interval)) ticker := time.NewTicker(time.Second * time.Duration(codeResp.Interval))
for range ticker.C { for range ticker.C {