小编Meh*_*ein的帖子

使用 PKCE 的授权代码流如何比没有 client_secret 的授权代码流更安全

很可能我误解了有关该主题的某些内容或在实施过程中遗漏了某些内容

我浏览了 Auth0 的文档,通过端点而不是 SDK 使用 PKCE 创建授权代码流,我看到我们提出了如下挑战和验证程序(来自 auth0 文档):

// Dependency: Node.js crypto module
// https://nodejs.org/api/crypto.html#crypto_crypto
function base64URLEncode(str) {
    return str.toString('base64')
        .replace(/\+/g, '-')
        .replace(/\//g, '_')
        .replace(/=/g, '');
}
var verifier = base64URLEncode(crypto.randomBytes(32));
Run Code Online (Sandbox Code Playgroud)

// Dependency: Node.js crypto module
// https://nodejs.org/api/crypto.html#crypto_crypto
function sha256(buffer) {
    return crypto.createHash('sha256').update(buffer).digest();
}
var challenge = base64URLEncode(sha256(verifier));
Run Code Online (Sandbox Code Playgroud)

然后我们将质询传递给授权端点,如下所示(来自 auth0 文档):

https://YOUR_DOMAIN/authorize?
    response_type=code&
    code_challenge=CODE_CHALLENGE&
    code_challenge_method=S256&
    client_id=YOUR_CLIENT_ID&
    redirect_uri=YOUR_CALLBACK_URL&
    scope=SCOPE&
    audience=API_AUDIENCE&
    state=STATE
Run Code Online (Sandbox Code Playgroud)

并将代码和验证器传递到令牌端点,如下所示(再次来自 auth0 文档):

curl --request POST \
  --url 'https://YOUR_DOMAIN/oauth/token' \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data grant_type=authorization_code \ …
Run Code Online (Sandbox Code Playgroud)

openid authorization oauth-2.0 auth0 pkce

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

如何使用 Webpack 为 Rest API Express NodeJS 服务器创建包

希望你们一切都好:)

我正在使用 Nodejs 在 REST API 服务器上工作,在完成 alpha 版本后,我想用构建工具为它创建一个包,虽然我在某个时候成功捆绑了应用程序仍然无法使 Express Rest API 脚本成为捆绑。由于我对 Webpack 并没有真正的经验,我很确定我做错了什么,必须有办法做到这一点。你也可以在下面看到我的 webpack.config.js、.babelrc 和 package.json:

webpack.config.js

var debug = process.env.NODE_ENV !== "production";
var webpack = require('webpack');
var module_dir = `${__dirname}/node_modules`;
const path = require('path');

module.exports = {
  entry: {
    app: [
      'babel-polyfill',
      './index.js',
    ],
  },
  output: {
    path: path.resolve(__dirname, 'build'),
    filename: 'app.bundle.js',
  },
  module: {
    rules: [{
        test: /\.js?$/,
        exclude: /node_modules/,
        loader: 'babel-loader',
        query: {
           presets: ['env', 'stage-0']
        }
    }]
  },
  resolveLoader: {
    modules: [
          __dirname + …
Run Code Online (Sandbox Code Playgroud)

node.js webpack babeljs webpack-dev-server babel-loader

5
推荐指数
1
解决办法
5574
查看次数

Laravel 8 不读取 docker-compose 传递的 env 值

一切顺利,

我有一个项目,最近从 laravel 6 升级到 laravel 8。

它对于开发和生产都进行了 dockerized,不幸的是,更新后,应用程序不会检索 docker-compose 文件传递​​的 env 值,并且仅当我将 .env 文件传递​​到容器时才有效。

此时,在容器内我仍然可以执行以下操作: php artisan tinker>> print_r(env("DB_HOST"))&&print_r($_ENV)并查看 env 值,即使不传递文件本身

因此 compose 文件将 env 值传递给容器,但 laravel 应用程序不会获取它们

还有其他人在 Laravel 8 中遇到过这个问题吗?

先感谢您,

php environment-variables laravel docker docker-compose

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