Как получить доступ к токену в файле схемы? - PullRequest
0 голосов
/ 09 февраля 2019

Я новичок в graphql.Я пытаюсь получить токен OAuth, который уже хранится в базе данных.Здесь я сопоставляю токен OAuth с заголовком, который указан в заголовке почтальона.

App.js file----
    const express = require('express');
const graphqlHTTP = require('express-graphql');
const bodyParser = require('body-parser') 
const schema = require('./schema/contentSchema');
// const schema = require('./schema/ex');
const oauthDb = require('./model/oauth_registration');
const jwt = require('jsonwebtoken');
const cors = require('cors');
const mysql  = require('mysql');

const app = express();
 app.use(cors());

 // bodyparser
 app.use(bodyParser.json());

 app.use(bodyParser.text({ type: 'application/graphql' }));


var con = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "upasana123",
  database: "edocentdb"
});


app.use(tokenAccess);
app.use('/graphql/api',bodyParser.json(),graphqlHTTP({


 schema,
 rootValue: root,


}));

var authToken = "";
function tokenAccess(req,res,next){
  if(req.headers['authorization']=='undefined'){
    res.sendStatus(403);
  }
  else{
    authToken = req.headers['authorization'];
    if(authToken){

//SQL query for oauth Token--------
        con.query("SELECT oauth_token,studio_id FROM oauth_registration where oauth_token = '"+authToken +"'", function (err, result, fields) {
          if (err) throw err;
          console.log( result);
          result = result;
          return result;

        });

      next();
    }




  }

}
// const rr = abc(res);
// console.log(rr.res);
app.listen(6000, () => {
    console.log('now listening for requests on port 7000');
});

----------------------------------------------------------------------
----------------------------------------------------------------------
schema file ---------------
 const Query = new GraphQLObjectType({
name: 'Query',
description: 'parent query object',
fields: () => {
  return {
    getContentDetails : {
        type: new GraphQLList(Film), 

        args: {
          id: {
            type: GraphQLID
          },
          permalink: {
            type: new GraphQLNonNull(GraphQLString) 
          },

          content_types_id: {
            type: new GraphQLNonNull(GraphQLString) 
          },
          aouthToken: {
            type: new GraphQLNonNull(GraphQLString) 
          },
        },
resolve (parent, args, context,info) {


       resolve: (parent, args, context, resolveInfo) => {
            return joinMonster.default(resolveInfo, {}, sql => {
                // console.log(resolveInfo);
                return FilmDb.query(sql).then(function(result) {

                    return result[0];
                  });


            },{dialect: 'mysql'});
          }

},

Когда я нажимаю URL, он запускает как запрос токена в консоли, так и запрос схемы (getContentDetails).Но это не показывает данные правильно.Данные не совпадают с токеном oauth.Он показывает данные только в соответствии с параметром передачи в этом аргументе.

Как я могу исправить это ????

Я что-то упустил ??Пожалуйста, помогите .....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...