feat: add QRCode state api, support QRCode login

This commit is contained in:
weloe
2023-10-15 22:18:39 +08:00
parent 8d64059a42
commit 82f65143b3
5 changed files with 228 additions and 0 deletions

View File

@@ -1,6 +1,7 @@
package token_go
import (
"github.com/weloe/token-go/model"
"testing"
)
@@ -33,3 +34,67 @@ func TestEnforcer_TempToken(t *testing.T) {
t.Errorf("ParseTempToken() failed, unexpected codeValue: %v", codeValue)
}
}
func TestEnforcer_ConfirmQRCode(t *testing.T) {
enforcer, _ := NewTestEnforcer(t)
// in APP
token, err := enforcer.LoginById("1")
if err != nil {
t.Fatalf("Login failed: %v", err)
}
t.Logf("login token: %v", token)
qrCodeId := "q1"
err = enforcer.CreateQRCodeState(qrCodeId, -1)
if err != nil {
t.Fatalf("CreateQRCodeState() failed: %v", err)
}
t.Logf("After CreateQRCodeState(), current QRCode state: %v", enforcer.GetQRCodeState(qrCodeId))
tempToken, err := enforcer.Scanned(qrCodeId, token)
if err != nil {
t.Fatalf("Scanned() failed: %v", err)
}
t.Logf("After Scanned(), current QRCode state: %v", enforcer.GetQRCodeState(qrCodeId))
t.Logf("tempToken: %v", tempToken)
err = enforcer.ConfirmAuth(tempToken)
if err != nil {
t.Fatalf("ConfirmAuth() failed: %v", err)
}
t.Logf("After ConfirmAuth(), current QRCode state: %v", enforcer.GetQRCodeState(qrCodeId))
if enforcer.GetQRCodeState(qrCodeId) == model.ConfirmAuth {
t.Logf(" QRCode login successfully.")
}
}
func TestEnforcer_CancelAuthQRCode(t *testing.T) {
enforcer, _ := NewTestEnforcer(t)
// in APP
token, err := enforcer.LoginById("1")
if err != nil {
t.Fatalf("Login failed: %v", err)
}
t.Logf("login token: %v", token)
qrCodeId := "q1"
err = enforcer.CreateQRCodeState(qrCodeId, -1)
if err != nil {
t.Fatalf("CreateQRCodeState() failed: %v", err)
}
t.Logf("After CreateQRCodeState(), current QRCode state: %v", enforcer.GetQRCodeState(qrCodeId))
tempToken, err := enforcer.Scanned(qrCodeId, token)
if err != nil {
t.Fatalf("Scanned() failed: %v", err)
}
t.Logf("After Scanned(), current QRCode state: %v", enforcer.GetQRCodeState(qrCodeId))
t.Logf("tempToken: %v", tempToken)
err = enforcer.CancelAuth(tempToken)
if err != nil {
t.Fatalf("CancelAuth() failed: %v", err)
}
t.Logf("After CancelAuth(), current QRCode state: %v", enforcer.GetQRCodeState(qrCodeId))
if enforcer.GetQRCodeState(qrCodeId) == model.CancelAuth {
t.Logf(" QRCode login is cancelled.")
}
}