Skip to content

Instantly share code, notes, and snippets.

@pedroraft
pedroraft / index.js
Last active April 15, 2018 18:38
medium tutorial token validation directive
const {SchemaDirectiveVisitor} = require('graphql-tools')
const {defaultFieldResolver} = require('graphql')
//...
class AuthDirective extends SchemaDirectiveVisitor {
visitFieldDefinition(field) {
const {resolve = defaultFieldResolver} = field
const {roles: expectedRoles = []} = this.args
console.log(expectedRoles.length);
field.resolve = (...args) => {
@pedroraft
pedroraft / index.js
Last active April 15, 2018 18:29
medium tutorial graphql auth, passing the token to resolvers
const jwt = require('jsonwebtoken')
//...
const makeContext = (req) => {
if (!req.event || !req.event.headers || !req.event.headers.Authorization) {
return {} // no auth yet
}
const token = req.event.headers.Authorization;
const decoded = jwt.verify(
token.replace('Bearer ', ''),
'secret'
@pedroraft
pedroraft / index.js
Last active April 15, 2018 17:09
Basic graphql server
const { GraphQLServer } = require('graphql-yoga')
const typeDefs = `
type Query {
hello(name: String): String!
}
`
const resolvers = {
Query: {