Comments (3)
Thank you so much! 👍
For anyone who is also wondering, I tried this approach. 🍺
// authClient.js
import {
AUTH_LOGIN,
AUTH_CHECK,
AUTH_LOGOUT,
} from 'admin-on-rest';
import { AUTH_GET_PERMISSIONS } from 'aor-permissions';
import 'whatwg-fetch'
const authenticate = (email, password) => {
const GRAPHQL_ENDPOINT = 'https://api.graph.cool/simple/v1/yourid'
const options = {
uri: GRAPHQL_ENDPOINT,
headers: {
'Content-Type': 'application/json',
},
method: 'POST',
body: JSON.stringify({ query: `
mutation {
signinUser(email: {
email: "${email}"
password: "${password}"
}) {
token
user {
name
email
}
}
}
`
})
}
return fetch(GRAPHQL_ENDPOINT, options)
}
export default (type, params) => {
if (type === AUTH_LOGIN) {
const { username, password } = params;
return authenticate(username, password).then((res) => {
const user = JSON.stringify(res);
window.localStorage.setItem('userData', user);
}).catch((error) => {
throw new Error(error.message);
});
}
if (type === AUTH_CHECK) {
return localStorage.getItem('userData') ? Promise.resolve() : Promise.reject();
}
if (type === AUTH_LOGOUT) {
return firebase.auth().signOut().then(() => {
localStorage.removeItem('userData');
}).catch((error) => {
console.log(error);
});
}
if (type === AUTH_GET_PERMISSIONS) {
const user = JSON.parse(localStorage.getItem('userData'))
return Promise.resolve(user.role);
}
return Promise.resolve();
}
from aor-graphql.
I would suggest to just use fetch for a one off mutation. All you're trying to do is requesting the token and putting it in localStorage
, keep it simple.
from aor-graphql.
@dervos is right, the easiest way would be to use fetch.
However, if you really want to use the gql-client, you could create a factory for your authClient, taking the gql-client as a parameter and returning a promise. This promise would resolve to the authClient.
from aor-graphql.
Related Issues (20)
- The resource list doesn't get updated on create [graphcool] HOT 5
- TypeError: queryBuilderFactory is not a function HOT 12
- What's the status? HOT 1
- Permissions issue with Graphcool HOT 4
- Mutations fail when updating to falsy values HOT 2
- Sort does not work as expected HOT 1
- No npm/yarn support? HOT 8
- aor-graphql-demo Posters list bug
- Graphcool demo data HOT 4
- Authentication HOT 3
- Status of this project HOT 3
- ReferenceManyField HOT 5
- Which is the recommended client for a standard GraphQL setup? HOT 1
- Can't use Theming as documented HOT 4
- WIP... which branches for Apollo-2...? HOT 3
- Custom client overwritten HOT 2
- Nested Relationships not possible to update
- Cache invalidation issue HOT 4
- Getting started / How to reference own Graphcool Prisma API?
- Introspection resolver does not return any resources
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aor-graphql.