如果我使用表单字段发送登录请求action="/login", method="post",它可以正常工作.与此处或此处提供的代码类似.
但如果相反,如果我使用相同的信息发送jquery/ajax,那么护照似乎不起作用.没有通过护照进行实际登录,但是ajax调用给出了误导性的成功消息.
以下不起作用.虽然我收到"登录成功"消息,但登录并没有真正发生.
$('#login_button').click(function () {
var email = $('#email').val();
var password = $('#password').val();
alert ('email/pass:' + email + ", " + password);
$.ajax({
type: "POST",
url: "/login",
data: { email: email , password: password },
dataType: 'html'
})
.done(function () {
console.log("http request succeeded");
alert("login success");
});
});
Run Code Online (Sandbox Code Playgroud)
我需要使用该ajax方法,以便在成功登录后我可以在客户端做一些有用的事情.例如,开始socket.io.
请帮忙.我在这里修改了代码:my-modified-code
有没有人有任何示例代码演示在socket.io的java客户端端接收消息?
另外,有没有从同一个socket.io java客户端发送文件/二进制/图片的例子?(基本上是来自java而不是javascript客户端的示例代码)
可以在这里获取android java客户端的版本(此版本声称它可以与socket.io 1.0及更高版本一起使用)(似乎是最新版本) https://github.com/nkzawa/socket.io- client.java
目前只允许我初始化连接的示例代码,服务器能够获取我的传入连接事件,并且java socket.io客户端能够发出基本的发射消息.但是,没有简单的例子说明如何从服务器广播获取消息更新或从另一个网站用户发出消息更新.
示例代码仅供参考:
package com.sample.d10132014a;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URISyntaxException;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import com.github.nkzawa.socketio.client.*; // java socket io client
import com.github.nkzawa.socketio.client.Socket;
import com.github.nkzawa.emitter.Emitter;
import com.github.nkzawa.engineio.client.*; // java engine io client
import com.github.nkzawa.engineio.client.transports.*;
public class MainActivity extends Activity {
public static String internalPath; // internal storage path
public static String fileName; // the file …Run Code Online (Sandbox Code Playgroud) 我正在使用passportJS进行用户身份验证.这是我的应用程序的路由,它验证登录信息.
app.post('/login', passport.authenticate('local', { successRedirect: '/',
failureRedirect: '/login' }));
Run Code Online (Sandbox Code Playgroud)
当我有我的表单时,重定向工作:
<form action="/login" method="post">
...
</form>
Run Code Online (Sandbox Code Playgroud)
但是,当我用角的ng-submit一个$http.post('/login')方法,重定向不会触发.登录确实有效,但重定向不起作用.
<form ng-submit="submitLogin(name,password)">
...
</form>
Run Code Online (Sandbox Code Playgroud)
MainController.js
$scope.loginSubmit = function(n,p) {
$http.post('/login', {
email: n,
password: p
});
};
Run Code Online (Sandbox Code Playgroud)
为什么Angular会阻止重定向工作?
我想知道如何将角度ui路由与护照结合起来.我找到的所有示例都使用node.js路由.
var routerApp = angular.module('routerApp', ['ui.router']);
routerApp.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/home');
$stateProvider
.state('home', {
url: '/home',
templateUrl: 'partial-home.html'
})
.state('about', {
// for example just show if is loggedIn
});
Run Code Online (Sandbox Code Playgroud)
我将如何在上面的代码段中实现此功能?
function isLoggedIn(req, res, next) {
// if user is authenticated in the session, carry on
if (req.isAuthenticated())
return next();
// if they aren't redirect them to the home page
res.redirect('/');
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的每一个提示
FOR /L %%i IN (1,1,100) DO (
choice
echo %ErrorLevel%
)
Run Code Online (Sandbox Code Playgroud)
%ErrorLevel%总是0无论你输入什么选择.
我已经按照这里的代码 - > https://github.com/jaredhanson/passport-local/tree/master/examples/express3为用户添加本地身份验证.
问题是当我尝试添加用户时
所以我创造了这条路线
app.get('/signup', function(req,res){
res.render('/signup');
});
app.post('/signup', function(req,res){
var body = req.body;
users.push(body);
res.redirect('/');
});
Run Code Online (Sandbox Code Playgroud)
那么页面就是它的形式
form(method='POST', action='/signup')
input(type='text', name='username', placeholder='username')
input(type='text', name='password', placeholder='password')
button.btn Register
Run Code Online (Sandbox Code Playgroud)
虚拟DB这是示例中的那个
users = [
{id:1, username: 'test', password:'papapa'}
];
Run Code Online (Sandbox Code Playgroud)
因此,当我发送表单信息时,一切正常,但当我尝试使用新创建的用户登录时,告诉我"错误:无法将用户序列化为会话"
serializeUser就是这个
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
findById(id, function (err, user) {
done(err, user);
});
});
Run Code Online (Sandbox Code Playgroud) 好的,所以使用passport.js可以正常工作,而且效果很好,从我所见过的.但是,我不确定如何正确排除某些用户.如果应用程序旨在限制访问,而不是仅仅为用户提供登录方法,我如何通过passport.js限制登录?目前,用户只需访问/login并使用他们的Google帐户登录,即可访问内部.
我正在创建一个应用程序,该应用程序将使用OAuth2协议提供身份验证,以使用应用程序的策略为已知客户端提供服务.
我已经尝试过使用oauth2orize和node-oauth2-provider模块,并且我不断得到同样的观点:
Provider应用程序.我无法弄清楚在哪里,为什么会发生这种情况 - 这是OAuth2协议的一个特性吗?这是正常的吗?如果我使用Facebook作为策略(想想passport-facebook),那么如果我使用Facebook登录任何应用程序,当我被重定向回应用程序时,我仍然登录到Facebook - 这是我希望为访问我的应用程序的客户提供的行为.
两个提供者模块都非常擅长我正在寻找的90%,但是他们的示例中都没有提供"持久性"登录,oauth2orize和node-oauth2-provider.我错过了什么吗?
我是Node.js的新手.尝试设置用户帐户创建并使用Passport登录.
我之所以选择Passport是因为它很受欢迎,但我似乎无法根据Passport网站上的文档拼凑出有效的身份验证流程.
有谁知道设置这个的教程?最好是可以下载源代码的地方.
我将分享我的app.js文件,也许这将揭示缺少的东西.
var express = require('express')
, routes = require('./routes')
, home = require('./routes/home')
, user = require('./routes/user')
, http = require('http')
, path = require('path')
, passport = require('passport')
, LocalStrategy = require('passport-local').Strategy
, flash = require('connect-flash');
var app = express();
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser());
app.use(express.session({ cookie: { maxAge: 60000 }, secret: 'keyboard cat' }));
app.use(flash());
app.use(passport.initialize());
app.use(passport.session());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
app.configure('development', function(){ …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用带有express/node.js应用程序的护照.出于某种原因,我无法使用谷歌进行身份验证.Google提供了以下错误:
错误:invalid_request
解析OpenID身份验证请求时出错.
Code:
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(user, done) {
done(null, user);
});
var GoogleStrategy = require('passport-google').Strategy;
var UserModel = require('./models/usermodel');
passport.use(new GoogleStrategy({
returnURL: 'http://localhost:3000/auth/google/return',
realm: 'http:/localhost:3000'
},
function(identifier, profile, done) {
profile.email = profile.emails[0].value;
UserModel.findOneAndUpdate({email:profile.email}, {$set:profile, $inc:{logins:1}}, {upsert:true}, done);
}
));
Run Code Online (Sandbox Code Playgroud) passport.js ×8
node.js ×7
express ×4
javascript ×4
angularjs ×2
ajax ×1
android ×1
batch-file ×1
database ×1
java ×1
jquery ×1
oauth-2.0 ×1
openid ×1
redirect ×1
socket.io ×1