MiauthのGo言語用パッケージです。
UUIDの生成にgithub.com/google/uuidを使用しています。 go.modファイルに追加しておいてください。
sessionID := miauth.GenerateSessionID()
appName := "MyApp"
callbackURL := "https://myapp.example.pigi/callback"
permission := "write:notes,write:following,read:drive"
miauthURL := miauth.ConstructMiauthURL(sessionID, appName, callbackURL, permission)
checkURL := fmt.Sprintf("https://{host}/api/miauth/%s/check", sessionID)
accessTokenResponse, err := miauth.PerformMiauthAuthentication(sessionID)
if err != nil {
fmt.Println("Error:", err)
return
}
token := accessTokenResponse.Token
user := accessTokenResponse.User
package main
import (
"fmt"
"github.com/CAT5NEKO/miauth"
)
func main() {
sessionID := miauth.GenerateSessionID()
appName := "MyApp"
callbackURL := "https://localhost:8000/callback"
permission := "write:notes,write:following,read:drive"
miauthURL := miauth.ConstructMiauthURL(sessionID, appName, callbackURL, permission)
//ピギモンゴをホストにする
accessTokenResponse, err := miauth.PerformMiauthAuthentication(sessionID, "pigi.mongo")
if err != nil {
fmt.Println("Error:", err)
return
}
token := accessTokenResponse.Token
user := accessTokenResponse.User
fmt.Println("Session ID:", sessionID)
fmt.Println("Miauth URL:", miauthURL)
fmt.Println("Access Token:", token)
fmt.Println("User ID:", user.ID)
fmt.Println("User Name:", user.Name)
}