1
+ <script setup lang="ts">
2
+ import { NInput , NSpace , NButton , NAlert , NTag } from ' naive-ui'
3
+ import { reactive , ref } from ' vue' ;
4
+ const input = reactive ({
5
+ phone: ' ' ,
6
+ password: ' ' ,
7
+ verify_code: ' '
8
+ })
9
+
10
+ const err1 = ref ()
11
+ const err2 = ref ()
12
+
13
+ const token = ref ()
14
+
15
+ async function getVerifyCode() {
16
+ const res = await fetch (' https://api.nn.ci/alist/wopan/login' , {
17
+ method: ' POST' ,
18
+ headers: {
19
+ ' Content-Type' : ' application/json'
20
+ },
21
+ body: JSON .stringify (input )
22
+ })
23
+ const data = await res .json ()
24
+ if (data .error ) {
25
+ err1 .value = data .error
26
+ return
27
+ }
28
+ }
29
+ async function getToken() {
30
+ const res = await fetch (' https://api.nn.ci/alist/wopan/verify_code' , {
31
+ method: ' POST' ,
32
+ headers: {
33
+ ' Content-Type' : ' application/json'
34
+ },
35
+ body: JSON .stringify (input )
36
+ })
37
+ const data = await res .json ()
38
+ if (data .error ) {
39
+ err2 .value = data .error
40
+ return
41
+ }
42
+ token .value = data
43
+ }
44
+ </script >
45
+
46
+
47
+
48
+ <template >
49
+ <NSpace size =" large" vertical >
50
+
51
+ <NInput size =" large" placeholder =" Phone number" v-model:value =" input.phone" ></NInput >
52
+ <NInput size =" large" placeholder =" Password" v-model:value =" input.password" type =" password" ></NInput >
53
+ <NButton type =" primary" size =" large" block @click =" getVerifyCode" >Get Verify Code</NButton >
54
+ <NAlert title =" Error" type =" error" v-if =" err1" >
55
+ {{ err1 }}
56
+ </NAlert >
57
+ <NInput size =" large" placeholder =" Verify code" v-model:value =" input.verify_code" ></NInput >
58
+ <NButton type =" primary" size =" large" block @click =" getToken" >Get Token</NButton >
59
+ <NAlert title =" Error" type =" error" v-if =" err2" >
60
+ {{ err2 }}
61
+ </NAlert >
62
+ <template v-if =" token " >
63
+ <div >refresh_token: <NTag :bordered =" false" type =" info" >{{ token.refresh_token }}</NTag >
64
+ </div >
65
+ <div >access_token: <NTag :bordered =" false" type =" info" >{{ token.access_token }}</NTag >
66
+ </div >
67
+ </template >
68
+
69
+ </NSpace >
70
+ </template >
0 commit comments