小编Jor*_*nda的帖子

使用AJAX时,Passport + Express4未经过身份验证

我在使用Passport时遇到了一个问题:在调用我的自定义端点时,我无法检查用户是否经过身份验证.

我已按以下方式配置了Express4应用程序:

app.use(morgan('dev')); // log every request to the console
app.use(cookieParser()); // read cookies (needed for auth)
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
// required for passport
app.use(session({ secret: 'secretphrase' })); // session secret
app.use(passport.initialize());
app.use(passport.session()); // persistent login sessions
app.use(checkAuth); // CHECK SESSION
app.use(flash()); // use connect-flash for flash messages stored in session
app.use(prepareRequests);
Run Code Online (Sandbox Code Playgroud)

checkAuth()中间件具有以下代码:

var checkAuth = function(request, response, next) {

    console.log("------------");
    console.log("checkAuth user: " + request.session.passport.user);
    console.log("checkAuth isAuthenticated: " + request.isAuthenticated());
    next();
}
Run Code Online (Sandbox Code Playgroud)

我第一次尝试使用护照登录时,isAuthenticated是假的.一旦我登录,每次打电话给我的服务器,当我的中间件通过时,被认证是假的!!! 但是,奇怪的是,如果我再次尝试登录,则isAuthenticated是真的.

这意味着只有我的AJAX调用返回isAuthenticated = false,但是当我maka表单帖子或点击指向API的链接时,它返回true!然后存储会话,但不存储AJAX请求. …

javascript ajax node.js express passport.js

3
推荐指数
1
解决办法
1906
查看次数

Cordova iOS:使用下载的html和视频文件加载视频

我有以下问题:

  • 我有一个iOS Cordova应用程序.
  • 应用程序通过使用以下Cordova插件下载zip文件并在"cdvfile:// localhost/persistent/content/myfolder"中解压缩:org.apache.cordova.file-transfer,org.apache.cordova.file和https: //github.com/MobileChromeApps/zip.git
  • 在zip中有一个"index.html"文件,上面有"视频标签".
  • 我能够成功加载并执行"index.html"文件,但视频无法加载.

我知道视频文件已成功解压缩,因为:

  • 我检查了iPad里面的文件.
  • 我通过以下方式将视频嵌入到cordova应用程序的索引中(不是下载的应用程序)并且它可以工作:

     var videocontainer = document.getElementsByTagName('video')[0];
     var videosource = document.getElementsByTagName('source')[0];
     var newmp4 = cordova.file.documentsDirectory + 'content/myfolder/videos/myvideo.mp4';
     videosource.setAttribute('src', newmp4);
     videocontainer.load();
     videocontainer.play();
    
    Run Code Online (Sandbox Code Playgroud)

但是,视频未在下载的HTML文件中加载/播放.为了理解我在做什么,我必须开发一个应用程序,通过从拉链下载其内容来更新,内容包括嵌入了视频的页面.它适用于PC和Android,但不适用于iOS.

我尝试了以下事项:

  • 在"_self"中加载页面.显示页面但不显示视频.
  • 在iframe中加载页面.结果相同.
  • 在inAppBrowser(插件)中加载页面.结果相同.
  • 带有源src ="videos/myvideo.mp4"的视频标签(适用于Web和Android).结果相同.
  • 带有源src ="./ videos/myvideo.mp4"的视频标签(适用于Web和Android).结果相同.
  • 带有源src = cordova.file.documentsDirectory +'content/myfolder/videos/myvideo.mp4'的视频标签(使用JS,通过在查询字符串中传递路径,在我之前描述的根index.html中工作的路径相同).结果相同.
  • 带有源src = cordova.file.documentsDirectory +'cdvfile://localhost/persistent/content/myfolder/videos/myvideo.mp4'的视频标签.结果相同.
  • 以前所有的组合.相同的结果....

在DIV中加载下载的资源不是一种选择,因为资源(图像,CSS,javascripts,音频,视频等)都下载到其他iOS设备的文件夹中:应用程序的Documents'文件夹(cdvfile:// localhost/persistent /).

我尝试了几乎所有的东西......为什么在html中播放视频标签并不是一件容易的事,这些视频标签都在应用程序的Documents'文件夹中?

:-(

编辑1:科尔多瓦版本= 3.6.3

video html5-video ios cordova inappbrowser

0
推荐指数
1
解决办法
1387
查看次数