ソースを参照

graphQl add token to local storage and work with it

serg155alternate 2 年 前
コミット
cda0641242
1 ファイル変更49 行追加27 行削除
  1. 49 27
      HW16 REST and GraphQL/script.js

+ 49 - 27
HW16 REST and GraphQL/script.js

@@ -1,14 +1,13 @@
+
+
 const getGQL = url =>
     (query, variables) => fetch(url, {
-        //метод
         method: 'POST',
         headers: {
-            //заголовок content-type
-            "Content-Type": "application/json"
+            "Content-Type": "application/json",
+             ...(localStorage.authToken ? {"Authorization": "Bearer " + localStorage.authToken} : null)
         },
         body: JSON.stringify({query, variables})
-        //body с ключами query и variables
-        
     }).then(res => res.json()).then(data => {
         console.log(data)
         if (data){
@@ -20,10 +19,22 @@ const getGQL = url =>
 
 const gql = getGQL('http://shop-roles.asmer.fs.a-level.com.ua/graphql');
 
+const login  = `query login($login:String, $password:String){login(login:$login, password: $password)}`;
+
+const userLogin =  {
+                "login": "Serg155",
+                "password": "00000000",
+                "nick": "Serg155"
+                };
+(async () => await gql(login, userLogin)
+    .then(tok => (tok[0].split('.')[2]))
+    .then(token => localStorage.authToken = token))()
+
+
 
 (async () => 
  await gql(`query NameForMe1($login:String, $password:String){login(login:$login, password:$password)}`,
- {login: 'tst', password: '123'}).then(res => console.log(res)))();
+ {login: 'serg155000', password: '123777'}).then(res => console.log(res)))();
 
  
 // написать тестовых запросов:
@@ -35,35 +46,46 @@ const caterory = `query categ{CategoryFind(query: "[{}]"){name image {url}}}`;
  await gql(caterory).then(res => res[0].map(item => console.log(item))))();
 
 
+//  let newUser =  {
+//             "login": "Serg",
+//             "password": "0000007777700",
+//             "nick": "Serg102"
+//         }
 
-const login  = `query login($login:String, $password:String){login(login:$login, password: $password)}`;
 
-const userLogin =  {
-                "login": "Serg155",
-                "password": "00000000",
-                "nick": "Serg155"
-                }
-(async () => await gql(login, userLogin).then(item => console.log(item)))();
+// const register = `mutation register($login:String, $password: String){
+//     UserUpsert(user:{login:$login, password:$password, nick:$login}){
+//        _id login
+//    }`;
 
 
- let newUser =  {
-            "login": "Serg",
-            "password": "0000007777700",
-            "nick": "Serg102"
-        }
+// (async () => await gql(register, newUser).then(item => console.log(item)))();
 
 
-const register = `mutation register($login:String, $password: String){
-    UserUpsert(user:{login:$login, password:$password, nick:$login}){
-       _id login
-   }`;
+// function gqlLogin(login, password){
+//     return gql(`запрос на логин с $переменными`, {login, password})
+
+
+// console.log((await gql(`query NameForMe1($login:String, $password:String){login(login:$login, password:$password)}`, {login: 'tst', password: '123'})))
+
+
+
+
+// const originalFetch = fetch;
+
+// fetch = (url, params={headers:{}}) => { 
+//     params.headers.Authorization = "Bearer " + localStorage.authToken
+//     return originalFetch(url, params)
+// };
+// console.log({
+//     method: 'POST',
+//     headers: { 
+//         "Content-Type": "application/json",
+//         ...(localStorage.authToken ? {"Authorization": "Bearer " + localStorage.authToken} : null)
+//     }})
+
 
 
-(async () => await gql(register, newUser).then(item => console.log(item)))();
 
 
-// function gqlLogin(login, password){
-//     return gql(`запрос на логин с $переменными`, {login, password})
-// 
 
-//console.log((await gql(`query NameForMe1($login:String, $password:String){login(login:$login, password:$password)}`, {login: 'tst', password: '123'})))