- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
更新:为我的 successRedirect 使用不同的路径,我已经成功地获得了对我的 GET 请求的 200 响应(参见下面的代码)。不过,这只是我第一次踏上这条路线时的真实情况。即使这样,浏览器也不会更改呈现的页面。即在我成功注册一个虚拟用户后,没有实际的重定向。
在对代码 304 进行了更多研究并进行了一些播放之后,这似乎是一个缓存问题,但这就是我到目前为止所得到的。
获取/测试
app.get('/test', function(req, res) {
res.render('video-view.html');
});
// process the signup form
app.post('/signup', passport.authenticate('local-signup', {
successRedirect : '/test', // redirect to the secure profile section
failureRedirect : '/sign-up', // redirect back to the signup page if there is an error
failureFlash : true // allow flash messages
}));
在本地注册成功后,我很难让我的路由器正确重定向。我的/config/passport.js 文件正确地向数据库添加了一行并且似乎序列化了 session 。它将用户返回到我的路由器,该路由器尝试重定向浏览器。查看我的控制台请求,我看到这个不成功的请求:GET/home 304。
我已经为此工作了很长一段时间,但一直未能找到解决方案或解决问题。我的部分问题是我没有使用模板引擎——只是提供用 angular.js 编写脚本的 html。也许我没有正确配置它,但所有其他路由和功能都运行良好。有什么想法吗?
这是我的路由器代码:
var express = require('express');
module.exports = function(app, passport) {
app.get('/signup', function(req, res) {
// render the page and pass in any flash data if it exists
res.render('sign-up.html');
});
app.get('/home', function(req, res) {
res.render('video-view.html');
});
app.post('/signup', passport.authenticate('local-signup', {
successRedirect : '/home', // redirect to the secure profile section
failureRedirect : '/signup', // redirect back to the signup page if there is an error
failureFlash : true // allow flash messages
}));
};
我的服务器是这样设置的:
var express = require('express');
var app = express();
var port = process.env.PORT || 8080;
var passport = require('passport');
var flash = require('connect-flash');
require('./config/passport')(passport); // pass passport for configuration
app.configure(function() {
app.use(express.logger('dev')); // log every request to the console
app.use(express.cookieParser()); // read cookies (needed for auth)
app.use(express.bodyParser()); // get information from html forms
app.engine('html', require('ejs').renderFile);
app.use('/', express.static(__dirname + '/views'));
app.use(express.session({ secret: 'vidyapathaisalwaysrunning' } )); // session secret
app.use(passport.initialize());
app.use(passport.session()); // persistent login sessions
app.use(flash()); // use connect-flash for flash messages stored in session
});
require('./app/routes.js')(app, passport); // load our routes and pass in our app and fully configured passport
app.listen(port);
最佳答案
已解决:令人惊讶的是,问题是由 View 中的代码引起的。
这是我之前和之后的技术:
在下面使用 Angular.js 之前。
注册.html
<div class="col-xs-6" id="register">
<p> Enter Username </p>
<input type="text" ng-model="username"/>
<p> Enter Password </p>
<input type="text" ng-model="password"/>
<input type="button" ng-click="register()">
</div>
Controller .js
$scope.register = function(){
var send = {'username': $scope.username,
'password': $scope.password};
$http.post('/signup', send);
};
我认为这不起作用的原因是浏览器不知道等待来自 Node 的响应。不是肯定的,但我最好的猜测是这个问题可以通过 Angular 中的 promise 来解决。
我通过将 angular 排除在等式之外并使用 html 表单处理 POST 来解决重定向问题。这是没有更改服务器端的工作代码:
注册.html
<form action="/signup" method="post">
<input type="text" name="username" />
<input type="text" name="password" />
<button type="submit" id="enter" value="ENTER" />
</form>
关于angularjs - Passport.js 路由不重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26371750/
我的 Angular 应用程序中有以下代码。 app.config(function($routeProvider, $locationProvider) { $locationProvider
这就是我在 Backbone 中进行路由的方式,在决定调用哪个外部模板之前,首先获取路由及其参数。我觉得这很灵活。 var Router = Backbone.Router.extend({
我是 MEAN 堆栈领域的新手,我对 Angular 路线有一些疑问。为什么我应该在客户端重新创建后端已经用express.js创建的路由,有什么好处?这是 Angular.js 工作的唯一方式吗?我
我可以设置一条从根级 URL 进行映射的路由吗? http://localhost:49658/ 我使用的是 VS2010 内置 Web 服务器。 尝试使用空白或单斜杠 URL 字符串设置路由不起作用
我有一个现有的应用程序 Rails 3.2.17和 Angular js。我想在现有应用程序中包含 Activeadmin。 我遵循了 active-admin post from ryan bate
我正在关注 this Angular 中的路由教程,它就是行不通。当我使用“comp”选择器放置它的 HTML 代码时,它可以工作,但是当我尝试使用路由器 socket 对其进行路由时,它只显示来自
多个路由通过路由器进行管理。 前端路由的概念和原理 (编程中的) 路由 (router)就是一组 key-value 对应关系,分为:后端路由和前端路由 后端路由
服务器需要根据不同的URL或请求来执行不一样的操作,我们可以通过路由来实现这个步骤。 第一步我们需要先解析出请求URL的路径,我们引入url模块。 我们来给onRequest()函数加上一些逻辑
我正在为 Angular 6 应用程序设置路由,我想要一条可以匹配可变数量的段的路由。目前我有一个看起来像这样的路由配置: const routes: Routes = [ { path: '',
用户将点击电子邮件中的链接,如下所示: do-something/doSomething?thing=XXXXXXXXXXX 如何在路由器中定义路由并订阅获取参数? 目前在我的路由器中: {
我有一个具有以下结构的 Angular (4) 应用程序: app.module bi.module auth.module 路由应该是: / -> redirect to /home /
我正在使用 WCF 4 路由服务,并且需要以编程方式配置服务(而不是通过配置)。我见过的这样做的例子很少见,创建一个 MessageFilterTable 如下: var fi
我需要创建一个“路由”服务。我正在尝试使用 .Net 的 System.ServiceModel.Routing.IRequestReplyRouter我可以让它只在 HTTP 模式下工作,而不是在
例如,链接: /shop/phones/brend/apple/display/retina/color/red 在哪里: phones - category alias brend -
非常基本的问题,我很惊讶我找不到答案。我刚刚开始研究 django 并进行了开箱即用的安装。创建了一个项目并创建了一个应用程序。 urls.py 的默认内容很简单: urlpatterns = [
我已经实现了 WCF 路由服务;我还希望该服务(或类似的 WCF 服务)以规定的和统一的(与内容无关的)方式转换有效负载。例如,有效负载将始终采用 Foo 的形式。我想把它作为Bar在所有情况下。我很
我想使用 $locationProvider.html5Mode(true); 在 angularJs 中删除 # 哈希;但这导致所有 URL 都通过 angularJs 进行路由。我如何设置它以便只
我要听导航开始事件并判断其是否url属性是 /logout . 如果是这样,路由器应该停止触发连续事件,例如 路线已识别 , GuardsCheckStart , ChildActivationSta
有人可以解释我如何使用参数路由到 URL 吗? 例如id 喜欢点击产品并通过Id打开产品的更多信息。 我的路由到目前为止... angular.module('shop', ["cus
我目前正在 Angular: 7.2.14 上构建,想看看是否有人可以解释如何使用路由保护、共享服务或其他方式等重定向查询参数。 我试图解决的问题要求查询参数从根 Uri 路径传入,然后将路由重定向到
我是一名优秀的程序员,十分优秀!