私たちが構築している新しいモバイルアプリケーション用のコンテンツをサービスするために内部的にparse-serverをホストする予定です。ユーザーに構文解析サーバーを使用し、他の内部REST Webサービスを呼び出す
また、私たちは、私たちが解析しているものに加えて私たちのモバイルクライアントが使用することを望む内部RESTサービスをいくつか持っています。 これらの内部RESTサービスを呼び出す前に、解析サーバーユーザー、認証およびセッション管理を活用したいと思います。
私は、彼らが唯一のPOSTを受け入れるよう、クラウドコード機能がかなり限られていることを見つけて、クライアントが使用するために、私はより多くのRESTfulなAPIをたいことは、内部サービスへの1-1をマップするので、私はちょうど要求を渡すことができます一緒に。 私は、リクエストを受信し、ベースURLを変更し、新しいヘッダ(auth関連)を追加し、内部Webサービスにリクエストするルート/プロキシを追加する構文解析サーバと並行して実行するExpressミドルウェア機能を作成しました。
まず、この他のエクスプレスエンドポイントを呼び出すために解析クライアントAPIを取得することは可能でしょうか? 第2に、サーバー側では、この呼び出しを認証する最も良い方法は何でしょうか。
単純なnode.jsテストファイルを作成しました。このファイルでは、javascript/node apiを使用して解析サーバーにサインインし、残りのクライアントのヘッダーにユーザーセッショントークンを設定してこの新しいエンドポイントを呼び出しますフィードバックやより良いアプローチのために。
var express = require('express');
var request = require('request');
var ParseServer = require('parse-server').ParseServer;
...
var api = new ParseServer({
...
});
app.use('/parse', api);
// Middleware function to auth request against parse and forward to other web service
app.use('/api/', function (req, res, next) {
var currentToken = req.headers['x-parse-session-token'];
//TODO, validate user token.. HOW BEST?
if (currentToken) {
// Query Parse for some user related data to add to request
// Modify request and forward to other web service
var newUrl = apiServerHost + req.baseUrl;
req.pipe(request(newUrl)).pipe(res);
} else {
res.send('Unknown parse user');
}
});
...
クラウドコードが要求を受け入れるだけの場所を確認してください。 https://www.parse.com/docs/cloudcode/guide#cloud-code-advanced –
クラウドコード関数を呼び出すには、parse apiがyourapp.com./parse/functions/yourfunctionnameへのPOSTを行います。もちろん、HttpRequestライブラリを使用してクラウド機能内からGET/PUTなどを作成することもできますが、クライアントからのPOSTを使用して最初にコールを開始します。 – coweye
右。私は**あなたのコメントを文字通り解釈しました。 –