Created
February 1, 2021 06:19
-
-
Save flymrc/228e3d1384d59901bf0588c52be911c1 to your computer and use it in GitHub Desktop.
Revisions
-
flymrc renamed this gist
Feb 1, 2021 . 1 changed file with 0 additions and 0 deletions.There are no files selected for viewing
File renamed without changes. -
flymrc created this gist
Feb 1, 2021 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,123 @@ <!doctype html> <html lang="en"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous"> <title>Hello, world!</title> </head> <body> <div id="app"> <div class="container-sm"> <!-- Login --> <form v-if="!sessionToken" @submit.prevent="onLogin"> <div class="form-group"> <label for="exampleInputEmail1">Username</label> <input type="text" class="form-control" v-model="username"> </div> <div class="form-group"> <label for="exampleInputPassword1">Password</label> <input type="password" class="form-control" v-model="password"> </div> <div class="form-group form-check"> <input type="checkbox" class="form-check-input" id="exampleCheck1"> <label class="form-check-label" for="exampleCheck1">Check me out</label> </div> <button type="submit" class="btn btn-primary">Submit</button> </form> <div v-if="sessionToken" class="container-sm"> <div class="card" style="width: 18rem;"> <img :src="userData.avata.attributes.url" class="card-img-top" alt="..."> <div class="card-body"> <h5 class="card-title"> {{ userData.name }}</h5> </div> </div> </div> </div> </div> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/av-min.js"></script> <script> AV.init({ appId: "PHsoUQJPuNqNIg66e28A9TuJ-gzGzoHsz", appKey: "o6Hf08FJtxvYOmFFgNMFnMow", serverURL: "https://phsouqjp.lc-cn-n1-shared.com" }); // AV.debug.enable(); const { Query, User } = AV; Vue.prototype.$AV = AV; Vue.prototype.$AVQuery = Query; Vue.prototype.$AVUser = User; window.app = new Vue({ el: '#app', data: { username: '', password: '', sessionToken: '', userData: { name: { attributes: { url: '' } }, avata: null, }, }, methods: { async onLogin() { const currentUser = await this.$AVUser.logIn( this.username, this.password ).then((resp) => { // 登录成功 const currentUser = this.$AVUser.current(); return currentUser; }, (error) => { // 登录失败(可能是密码错误) console.warn(error); return null; }); if (currentUser === null) { return } this.sessionToken = currentUser._sessionToken; const query = new this.$AVQuery("Auser") const aUsers = await query.equalTo('user', currentUser).find().then((aUsers) => { return aUsers; }); if (aUsers.length == 1) { this.userData = Object.assign({}, aUsers[0]._serverData); } console.log(this.userData.avata.attributes.url); }, }, mounted() { } }) </script> </body> </html>