小编Kam*_*ski的帖子

如何在有限的时间内对匿名用户进行身份验证/授权?

假设我有一个发票实体.发票属于某个用户(invoices.user_id).

如果用户输入myapp.com/invoices/1,则需要登录才能访问其发票.这很正常.

有时invoices.user_id为空(发票所有者在我们的系统中没有帐户),但我们有一个invoices.phone_number列.

目标是为我们系统中没有帐户的用户创建基于SMS代码验证的身份验证系统.如果用户确认他确实拥有与发票相关的电话号码(代码验证),我想授予他临时访问权限(15分钟)到此发票详细信息页面(仅限此页面).

我的第一个想法是使用存储在会话中的JWT令牌.

我的第二个想法是使用自定义防火墙.

有没有更好的方法?

php symfony symfony-security

9
推荐指数
1
解决办法
349
查看次数

使用react.js和后端,您的工作流程如何?

我正在使用Laravel 5.2和ReactJS开发一个简单的CRM应用程序.以前我是独立使用它们,但现在我想尝试将它们组合在一起,因此Laravel将成为我的API,前端将全部在ReactJS中.

据我所知,当我的应用程序准备好上线时,我将提供我的主视图,其中包括root div,bundle.js等.

谈到开发部分,我有点困惑.我真的喜欢反应热重装,但是现在我不得不做一点走动才能使这个工作.

我并排运行两台服务器.Webpack-dev-server和homestead,所以我可以调用我的API.但我还必须为webpack-dev-server提供额外的index.html.当我在index.blade.php视图中更改某些内容时,我还需要在此index.html中更改此内容,这有点痛苦.

有什么很酷的技巧可以用来改善我的工作流程吗?如果有任何例子请给我一个链接,因为我找不到一个.有很多小的待办事项应用程序并没有真正解决我的问题.

PS.目前我正在使用这种方法https://github.com/sexyoung/laravel-react-webpack

@UPDATE

我想我找到了一个可以接受的解决方案.我会坚持使用我在问题中提供的webpack服务器配置(这真的很棒,因为你可以使用热重载+你api调用重定向到后端端口,所以代替localhost:8080/api/user ...你打电话/ api/user/1),但我还开发了一个简单的elixir扩展,它将php编译成简单的静态HTML页面,解决了编辑两个索引文件的问题(我们都知道程序员是懒惰的).

var php2html = require("gulp-php2html");
var gulp = require("gulp");
var rename = require("gulp-rename");
var Task = elixir.Task;

elixir.extend("php2html", function (message) {
    new Task("php2html", function () {
        return gulp.src("./resources/views/index.blade.php")
            .pipe(php2html())
            .pipe(rename('index.html'))
            .pipe(gulp.dest("./"));
    })
    .watch("resources/views/index.blade.php");
});

elixir(function (mix) {
    mix.sass('app.scss');
    mix.php2html();
});
Run Code Online (Sandbox Code Playgroud)

所以目前我有两个索引文件:

  • 资源/视图中的index.blade.php,由生产中的路由器解析

  • index.html在我的应用程序文件夹的根目录中,由webpack-dev-server用于开发

当然现在这些文件是gulp手表的同步原因:)

如果有更好的方法,让我认识一下.

laravel reactjs

6
推荐指数
1
解决办法
742
查看次数

如何将 Vite 构建包装在 IIFE 中,并且仍然将所有依赖项捆绑到单个文件中?

我正在使用 Vite 作为构建工具构建 chrome 扩展。主要问题是在缩小和修改过程中创建了很多全局变量。将我的脚本注入页面后,它们与窗口对象上已定义的变量发生冲突。

我想完美的解决方案是将我的整个脚本封装在 IIFE 中。我尝试使用esbuild.format = 'iife'. 生成的构建实际上包含在 IIFE 中,但是所有导入都不是内联的。相反,生成的脚本大约有 15 行长,包含一堆require语句,这显然在浏览器中不起作用。

这是我的配置文件:

export default defineConfig({
  plugins: [
    vue(),
  ],
  esbuild: {
    format: 'iife',
  },
  build: {
    emptyOutDir: false,
    rollupOptions: {
      input: resolve(__dirname, './src/web/index.ts'),
      output: {
        dir: resolve(__dirname, './dist'),
        entryFileNames: 'web.js',
        assetFileNames: 'style.css',
      },
    },
  },
  resolve: {
    alias: {
      '@': resolve(__dirname, './src'),
    },
  },
});
Run Code Online (Sandbox Code Playgroud)

我目前正在使用这个 hack,也就是说将我的构建包装在 IIFE 中(为此我删除了该esbuild.format选项)。

esbuild vite

4
推荐指数
1
解决办法
5773
查看次数

如何在自定义域的 Docker 容器中运行 Vue Dev Server?

基本上我想要实现的目标是让我的应用程序运行在local.myapp.com而不是localhost.

注意:在主机内部,/etc/hosts我有127.0.0.1 local.myapp.com条目,并且我的 docker-compose 配置有ports: 80:80.

当我在主机上运行此命令时:yarn serve --port=80 --host=local.myapp.com一切正常,我可以通过 访问我的 Vue 应用程序local.myapp.com。但是我无法使用 Docker 以相同的方式配置它。

以下所有命令都在 docker 容器中运行:

输入http://local.myapp.com/-yarn serve --port=80给我无效的主机标头

输入http://local.myapp.com/-yarn serve --port=80 --host=local.myapp.com给我ERR_EMPTY_RESPONSE

在容器内部进行wget http://local.myapp.com:80工作。

我缺少什么?

docker webpack-dev-server vue-cli

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