Tag: 基本authentication

如何从运行在appengine中的NodeJS应用程序访问Google CloudML REST API

我在CloudML中运行我的预测。 我想从我的NodeJS应用程序调用预测REST API ,并且想要在AppEngine中运行的NodeJS应用程序中显示预测结果。 我可以find文档来为Python应用程序做这件事。 但是找不到NodeJS。 我可以使用正常的rest客户端,如节点rest客户端 ? 如果是,我怎样才能通过Google应用程序默认凭证 ?

如何validationnodejs中的firebase-admin用户?

目前,我正在为nodejs创build一个Firebase API。 我想用nodejs上的firebase-admin处理所有Firebase的东西(如身份validation)。 但是,如果在客户端没有使用Javascript Firebase SDK的firebase-admin中通过nodejsvalidation用户身份的正确方法是什么? 在pipe理员的官方文档,我没有find一个名为signInWithEmailAndPassword (如在客户端SDK)的函数nodejs。 只有一个叫做“ getUserByEmail ”的函数,但是这个函数并不检查用户是否input了正确的密码。 这是我的forms: <form class="sign-box" action="/login" method="post"> <div class="form-group"> <input id="username" name="username" type="text" class="form-control" placeholder="E-Mail"/> </div> <div class="form-group"> <input id="password" name="password" type="password" class="form-control" placeholder="Password"/> </div> <button type="submit" class="btn btn-rounded">Sign in</button> </form> 一旦提交表单,我将这些值传递给nodejs中的API: app.post('/login', urlencodedParser, function (req, res) { // getting the values response = { username: […]

nodejs – 证书链中的错误自签名证书

我面临客户端https请求的问题。 一个片段可以看起来像这样: var fs = require('fs'); var https = require('https'); var options = { hostname: 'someHostName.com', port: 443, path: '/path', method: 'GET', key: fs.readFileSync('key.key'), cert: fs.readFileSync('certificate.crt') } var requestGet = https.request(options, function(res){ console.log('resObj', res); } 我得到的是错误:证书链中的自签名证书。 当我使用邮差,我可以导入客户端证书和密钥,并没有任何问题使用它。 有没有解决scheme? 我还想给予一些关于邮递员如何处理证书和工作的信息。

API将不会使用MSAL通过SPA传递的令牌对AAD进行身份validation

我正在尝试修改这里和这里引用的示例B2C代码,以对抗我们的组织AAD。 我有一个SPA应用程序,通过MSAL成功地通过AAD进行身份validation,并接收令牌。 SPA应用程序可以使用令牌从MS Graph API中提取数据 – 所以我确定该令牌是有效的。 SPA当前在本地运行@ localhost:9000。 我有第二个应用程序是运行@ localhost:3000的Nodejs API。 SPA应用程序调用API传递用于GraphAPI的相同标记。 API应用程序应该使用该令牌来validation用户并提供对API的访问; 然而,我只能回到401 – 未经授权。 (我使用Aurelia作为客户端代码,HTTP请求使用Aurelia的HTTP客户端)。 以下是用于调用API的SPA代码: //Not entirely sure what to use as the scope here!! API is registered to allow user.read Graph API scope. this.config.msClient.acquireTokenSilent(["user.read"]).then(token => { console.log("Token acquired silently."); this.makeAPICall(token); }, error => { … } ); makeAPICall(token) { this.http.configure(config […]

当前环境不支持指定的持久性types的Firebase

我得到这个错误。 “当前环境不支持指定的持久性types。” 我正在testing我的应用程序,并看到当用户login时,它的login到处。 所以我试图在node.js express上使用firebase实现会话,希望能够解决这个问题。 我的代码是这样的: router.post("/login", function (req, res) { email = req.body.email; password = req.body.password; firebase.auth().setPersistence(firebase.auth.Auth.Persistence.SESSION); firebase.auth().signInWithEmailAndPassword(email, password).then(function () { var user = firebase.auth().currentUser; firebase.auth().onAuthStateChanged(function (user) { if (user) { res.redirect("/home"); } }); });});

NodeJS – 显示login或不是用户的不同内容

我试图显示不同的内容login,而不是在一个页面上的用户。 这是我用来生成/页面的代码: app.get('/',function(req, res){ if (!checkSession(req, res)) { res.render('index.ejs', { title: 'FrontSpeak – blog-based social network' }) } else { res.render('index.ejs', { title: 'autrhorized' }) } }) checkSession函数: function checkSession(req, res) { if (req.session.user_id) { db.collection('users', function (err, collection) { collection.findOne({ _id: new ObjectID(req.session.user_id) }, function (err, user) { if (user) { req.currentUser = user; […]

在NodeJS中使用REST APIauthentication困惑

我正在为我的项目使用Express + NodeJS + Mongoose.js + PassportJS。 我在IOS中为我的客户端应用程序创build了一个API密钥,并且每个请求都由此apikey完成。 有时我需要从服务器上获取用户相关的数据。 例如: 如果我提出查询场地的请求,并查看当前用户是否已经评估了场地。 为此,我应该将用户标识作为参数发送到服务器以进行与当前用户相关的查询。 正如我在Foursquare API中看到的,如果请求用户被authentication,你可以查询用户相关的数据。 如果用户没有通过身份validation,只有通过身份validation,则无法查询用户相关数据。 那么,我应该给每个用户一个apikey吗? 或者只有一个API才能使用我的API?

限制对所有路线的访问权限

我开始尝试使用ExpressJS + AngularJS,我遇到了一个压力的情况。 我的目标是拥有一个login页面和一个仪表板页面,并使用Passport + MongoDB我将对用户进行身份validation,如果凭据正确,则将其redirect到仪表板页面。 我已经开始使用angular-express-seed并对其进行了修改,所以我结束了前面提到的观点: $routeProvider. when('/login', { templateUrl: 'partials/login', controller: 'LoginCtrl' }). when('/dashboard', { templateUrl: 'partials/dashboard', controller: 'DashboardCtrl' }). otherwise({ redirectTo: '/login' }); 我正在服务每个部分观点: app.get('/partials/:name', routes.partials); exports.partials = function (req, res) { var name = req.params.name; res.render('partials/' + name); }; 除了我可以直接访问仪表板的部分(根本不login)之外,login系统工作正常。 所以我想我需要弄清楚在授予用户访问仪表板(或任何其他方面)之前,用户是否已通过身份validation。 我发现这是诀窍: function ensureAuthenticated(req, res, next) { if (req.isAuthenticated()) { return […]

如何通过TwitterStrategy,PassportJS传递数据?

我有三种用户: 查看器 (链接login:auth / v / twitter) 创build者 (链接login:auth / c / twitter) pipe理员 (链接login:auth / a / twitter) 而且我也有3个不同的数据库/集合 c_viewer c_creator C_ADMIN 每种用户都有不同的链接login。 现在让我们来看看代码 var passport = require('passport') ,TwitterStrategy = require('passport-twitter').Strategy; passport.use(new TwitterStrategy({ consumerKey: config.development.tw.consumerKey, consumerSecret: config.development.tw.consumerSecret, callbackURL: config.development.tw.callbackURL }, function(token, tokenSecret, profile, done) { process.nextTick(function(req, res) { var query = User.findOne({ 'twId': profile.id}); […]

在处理POST请求时确定谁在Node上使用basicAuth进行了身份validation

我正在使用basicAuth来validation特定地址上的POST。 在客户端,我使用了以下格式的命令: $.ajax({ type: "POST", accepts: "text/plain", url: "http://localhost:3000/somewhere", data: JSON.stringify(something), contentType: "application/json; charset=UTF-8", dataType: "json", success: function(data) { window.alert("Received back: '" + data + "'"); }, username: theUsername, password: "a password" }); 这是工作正常,在用户名中存储的用户名通过我在节点上的身份validation机制。 当用户通过身份validation时,我可以打印一个console.log语句,并查看谁已实际身份validation(我目前没有validation密码)。 但是,然后实际处理开始POST请求。 但是,在那个时候,我怎样才能找出原始请求中使用的用户名和密码呢? 我试图看看请求的标题,但我没有看到任何东西。