小编dar*_*mnx的帖子

如何在html中传递webpack环境变量?

如何在处理时间内获取/访问webpack ENV变量(而不是浏览器中的运行时)?在webpack.DefinePlugin(...)似乎没有在HTML文件中工作,我没有访问ENV变量在主index.html

任何解决方案

environment-variables webpack

21
推荐指数
2
解决办法
1万
查看次数

如何在没有服务器的情况下发送电子邮件?只有带sendgrid的前端Javascript或

我最近想知道如何通过电子邮件即服务应用程序(如sendgrid或mandrill等)发送只有Javascript等前端语言的电子邮件.

Sendgrid和mandrill有Curl APIS,所以基本上我只能向他们的API发送一个AJAX发布请求来发送邮件,但问题是,我将把我的API密钥放在JS文件中,这意味着它将是公开的. ..虽然它应该是秘密的.

在这两个应用程序中,有关前端使用的文档中没有任何内容,除了拥有自己的将使用API​​的服务器,但我目前正在基于前端的项目.没有服务器编程,服务器只渲染资产.

你们知道这种方法或应用程序能够实现这一目标吗?谢谢

javascript email frontend web-frontend sendgrid

12
推荐指数
2
解决办法
1万
查看次数

用errorCallback打破Promise"then"链

- 编辑 -

我最近遇到了一些关于承诺的奇怪的事情,但我想这可能是因为它违背了承诺的哲学.

考虑以下代码:

// Assuming Auth is just a simple lib doing http requests with promises
Auth.signup()
 .then(succCall, errCall)
 .then(loginSucc, loginErr)

// My callbacks here
function succCall (){
 // OK, send second promise
 console.log('succCall');
 return Auth.login();
}

function errCall(){
 // I do some things here and now
 // I want to break out from here
 console.log('errCall');
}

function loginSucc(){
 // This is the callback of the login method when it went OK
 // I want to enter here …
Run Code Online (Sandbox Code Playgroud)

javascript promise angularjs angular-promise

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

我不明白 JWT 刷新令牌的行为 (LARAVEL)

我刚刚用 LARAVEL 和这个https://github.com/tymondesigns/jwt-auth尝试过 JWT 身份验证

但有一点我无法理解。在他们的配置中,他们放置了:

'ttl' => env('JWT_TTL', 60), // in munutes
'refresh_ttl' => env('JWT_REFRESH_TTL', 20160), // in minutes
Run Code Online (Sandbox Code Playgroud)

我所理解的是:令牌的有效期为 1 小时,可以在 2 周内刷新

但是 3 小时后,如果我尝试查询某些内容,它会显示“令牌已过期”。

这个系统是否意味着,用户必须在每小时内更新/刷新他的令牌,但限制为 2 周?我不明白。

用户如何在这种系统上持续登录?第一个小时后刷新令牌如何有用,虽然还不到 2 周,但我无法获得新令牌?

谢谢

更新:代码

配置/jwt.php

'ttl' => 2, // 2 minutes
'refresh_ttl' => 5, // 5 minutes
Run Code Online (Sandbox Code Playgroud)

路线/api.php

Route::post('/login', 'AuthController@login');
Route::get('/test', 'AuthController@test')->middleware('jwt.auth', 'jwt.refresh');
Run Code Online (Sandbox Code Playgroud)

Http/控制器/AuthController

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use JWTAuth;
use Tymon\JWTAuth\Exceptions\JWTException;

class AuthController extends Controller
{
    public function test()
    {
        return response()->json(['coucou' => 1]);
    } …
Run Code Online (Sandbox Code Playgroud)

php jwt laravel

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

如何让 gtag 在 chrome 扩展中工作?

我已将 gtag.js 添加到我的 chrome 扩展程序中,但我在网络上看不到任何内容,请告诉我我做错了什么。

这是我在 manifest.json 中的 CSP

{
   "content_security_policy": "script-src 'self' https://www.googletagmanager.com https://ssl.google-analytics.com https://www.google-analytics.com https://mustsee-earth.firebaseio.com; object-src 'self'"
}
Run Code Online (Sandbox Code Playgroud)

这是我的扩展程序使用的 index.html(它替换了用户的默认选项卡)

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>mustsee.earth</title>
    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-XXXXXXXXX-X"></script>
</head>
Run Code Online (Sandbox Code Playgroud)

这是我如何触发视图和事件

gtag('config', GATID, {
  page_title: place.name,
  page_path: path
})

gtag('event', binding_value.action, {
    event_category: binding_value.category,
    event_label: binding_value.label,
    value: binding_value.value
})
Run Code Online (Sandbox Code Playgroud)

虽然我遵循了每一步,但这是我在网络上所拥有的:什么都没有。

这是dataLayer 变量,它证明我的事件已添加到队列中但未触发

[
 {
  "0": "js",
  "1": "2018-04-24T21:02:54.881Z"
 },
 {
  "0": "config",
  "1": "UA-XXXXXXXXX-X",
  "2": {
   "checkProtocolTask": null,
   "custom_map": {
    "dimension5": "under 1.5 or failed" …
Run Code Online (Sandbox Code Playgroud)

analytics google-analytics google-chrome-extension gtag.js

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

如何在客户端并行处理多个请求/API 调用的 JWT 刷新令牌?

我遇到了一个问题,我在任何地方都找不到安全第一和可维护的答案。

想象一个仪表板同时执行多个查询,您如何以干净和标准的方式处理refresh_tokens

堆栈是(即使堆栈在这里无​​关紧要):

后端 - 带有 JWT 令牌认证的 Laravel 前端 - 带有 axios 的 Vue JS 用于 API 调用

端点:

  • /auth/登录(公共)
  • /auth/refresh-token(需要认证)
  • /统计(需要身份验证)
  • /other-statistics(需要身份验证)
  • /event-more-statistics(需要身份验证)
  • /final-statistics(需要身份验证)...

JWT 刷新工作流

  • 用户导航到客户端上的mywebsite.com/login
  • 登录页面对服务器进行 API 调用 axios.get('/auth/login').then(res => setTokenAndUser(res))
  • 服务器响应access_token(生命周期 1 分钟)和refresh_token(生命周期 1 个月左右)
  • 用户导航到mywebsite.com/dashboard
  • 用户点击某物,仪表板页面执行 4 个 API 调用,与上面最后 4 个端点并行
// ... just some pseudo code
userDidAction() {
  axios.get('/statistics').then(res => handleThis(res.data));
  axios.get('/other-statistics').then(res => handleThat(res.data));
  axios.get('/event-more-statistics').then(res => handleThisAgain(res.data));
  axios.get('/final-statistics').then(res => handleThatAgain(res.data));
}
// ...
Run Code Online (Sandbox Code Playgroud)
  • 第一次调用完成,服务器使旧令牌无效 …

javascript security authentication authorization jwt

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

多个“有很多通过”与laravel的雄辩

我遇到了 Laravel 的 ORM 的问题,雄辩但尚未找到解决方案。

我有一些表格如下

团队

 - id
 - name
Run Code Online (Sandbox Code Playgroud)

用户

 - id
 - name
 - role
 - team_id
Run Code Online (Sandbox Code Playgroud)

学生信息

 - id
 - user_id
 - data1
 - data2
 - etc ...
Run Code Online (Sandbox Code Playgroud)

项目

 - id
 - student_id
 - name
Run Code Online (Sandbox Code Playgroud)

现在,我想查询某个特定的所有项目team,其中team = 'some team'

现在的问题是,如果没有 ORM,这很简单,我会在原始 SQL 中完成多个连接。

然而,因为所有这些表都有一个共同的列“名称”,我将不得不为所有这些东西起别名,这真的很无聊

对于雄辩的我找不到一种方法来使用“有很多通过”来执行此查询,因为它只允许中间,而且我无法执行原始 SQL,因为 alis 的事情确实是一个痛苦的事情,因为它会是将结果映射到 Laravel 的模型非常困难

php sql orm laravel eloquent

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

如何在 Vue 3 中以编程方式创建组件实例?

我有一个用于常见场景的 Vue 2 模式:以编程方式创建一个实例以在模板外部的动态内容上打开模态/对话框/灯箱。

在 Vue 2 中,我发现了这种模式:

// DialogService.js

export default {
  alert(text) {
    const DialogClass = Vue.extend(DialogComponentDef);
    let dialog = new DialogClass({ propsData: { text } });

    dialog.$on('close', () => {
      dialog.$destroy();
      dialog.$el.remove();
      dialog = null;
    });

    // mount the dynamic dialog component in the page
    const mountEl = document.createElement('div');
    document.body.appendChild(mountEl);
    dialog.$mount(mountEl);
  },
};
Run Code Online (Sandbox Code Playgroud)

我怎样才能在 Vue 3 中实现这一点,知道Vue.extends, $on&$destroy不再存在?您可以单击此处查看 DialogService.js 的完整示例。

javascript vue.js vue-component vuejs2 vuejs3

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

雄辩的嵌套嵌套口才计数关系

您必须已经看到以下功能(在Facebook上),一个带有一些评论的帖子,每个评论都有一个类似的计数器。

https://img4.hostingpics.net/pics/67853820170616003640LaravelNewsAccueil.png

在laravel中,它将像

  • 发表hasMany评论
  • 评论属于发布
  • 喜欢喜欢属于用户
  • 喜欢属于
  • 评论有很多评论喜欢

所以,现在我想获得10条带他们的评论的帖子,每个评论都带有类似计数器。

Post::with('comments')->withCount('comments.likes')->take(10)->get();
Run Code Online (Sandbox Code Playgroud)

这根本不起作用。

Post::with('comments')->withCount('comments')->take(10)->get();
Run Code Online (Sandbox Code Playgroud)

这计算了每个帖子的所有评论,我想计算每个帖子的每个评论的所有赞。

sql orm eager-loading laravel eloquent

2
推荐指数
2
解决办法
1772
查看次数