-
Notifications
You must be signed in to change notification settings - Fork 0
/
example_test.go
87 lines (68 loc) · 2.22 KB
/
example_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package securelogin_test
import (
"bytes"
"fmt"
"os"
"time"
"github.com/vladimiroff/securelogin"
)
const domain = "https://cobased.com"
var sltoken = []byte("https://cobased.com%2Chttps://cobased.com%2C%2C1498731060," +
"E5faDp1F3F4AGN2z5NgwZ/e0WB+ukZO3eMRWvTTZc4erts8mMzSy+CxGdz3OW1Xff8p6m" +
"DAPfnSK0QqSAAHmAA==%2CcIZjUTqMWYgzYGrsYEHptNiaaLapWiqgPPsG1PI/Rsw=," +
"kdbjcc08YBKWdCY56lQJIi92wcGOW+KcMvbSgHN6WbU=%2C1OVh/+xHRCaebQ9Lz6k" +
"OTkTRrVm1xgvxGthABCwCQ8k=,homakov@gmail.com")
func ExampleVerify() {
t, err := securelogin.Verify(sltoken, securelogin.WithOrigins(domain), securelogin.WithoutExpire)
if err != nil {
fmt.Printf("verify failed: %s", err)
return
}
fmt.Printf("logged in as %s\n", t.Email)
// Output: logged in as homakov@gmail.com
}
func ExampleToken_Verify_expired() {
t, err := securelogin.Unmarshal(sltoken)
if err != nil {
fmt.Printf("unmarshal failed: %s", err)
return
}
// Expired one hour ago
t.ExpireAt = time.Now().Add(-1 * time.Hour)
err = t.Verify(securelogin.WithOrigins(domain))
fmt.Printf("%s\n", err)
// Output: expired token
}
func ExampleToken_Verify() {
t, err := securelogin.Unmarshal(sltoken)
if err != nil {
fmt.Printf("unmarshal failed: %s", err)
return
}
err = t.Verify(securelogin.WithOrigins(domain), securelogin.WithoutExpire)
fmt.Printf("successful verify: %t", err == nil)
// Output: successful verify: true
}
func ExampleDecoder() {
var t securelogin.Token
dec := securelogin.NewDecoder(bytes.NewReader(sltoken))
if err := dec.Decode(&t); err != nil {
fmt.Printf("decode failed: %s", err)
return
}
fmt.Printf("token of %s\n", t.Email)
// Output: token of homakov@gmail.com
}
func ExampleEncoder() {
t, err := securelogin.Unmarshal(sltoken)
if err != nil {
fmt.Printf("unmarshal failed: %s", err)
return
}
enc := securelogin.NewEncoder(os.Stdout)
if err = enc.Encode(t); err != nil {
fmt.Printf("encode failed: %s", err)
return
}
// Output: https://cobased.com%2Chttps://cobased.com%2C%2C1498731060,E5faDp1F3F4AGN2z5NgwZ/e0WB+ukZO3eMRWvTTZc4erts8mMzSy+CxGdz3OW1Xff8p6mDAPfnSK0QqSAAHmAA==%2CcIZjUTqMWYgzYGrsYEHptNiaaLapWiqgPPsG1PI/Rsw=,kdbjcc08YBKWdCY56lQJIi92wcGOW+KcMvbSgHN6WbU=%2C1OVh/+xHRCaebQ9Lz6kOTkTRrVm1xgvxGthABCwCQ8k=,homakov@gmail.com
}