如何在处理时间内获取/访问webpack ENV变量(而不是浏览器中的运行时)?在webpack.DefinePlugin(...)似乎没有在HTML文件中工作,我没有访问ENV变量在主index.html
任何解决方案
我最近想知道如何通过电子邮件即服务应用程序(如sendgrid或mandrill等)发送只有Javascript等前端语言的电子邮件.
Sendgrid和mandrill有Curl APIS,所以基本上我只能向他们的API发送一个AJAX发布请求来发送邮件,但问题是,我将把我的API密钥放在JS文件中,这意味着它将是公开的. ..虽然它应该是秘密的.
在这两个应用程序中,有关前端使用的文档中没有任何内容,除了拥有自己的将使用API的服务器,但我目前正在基于前端的项目.没有服务器编程,服务器只渲染资产.
你们知道这种方法或应用程序能够实现这一目标吗?谢谢
- 编辑 -
我最近遇到了一些关于承诺的奇怪的事情,但我想这可能是因为它违背了承诺的哲学.
考虑以下代码:
// 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) 我刚刚用 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) 我已将 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) 我遇到了一个问题,我在任何地方都找不到安全第一和可维护的答案。
想象一个仪表板同时执行多个查询,您如何以干净和标准的方式处理refresh_tokens?
堆栈是(即使堆栈在这里无关紧要):
后端 - 带有 JWT 令牌认证的 Laravel 前端 - 带有 axios 的 Vue JS 用于 API 调用
端点:
JWT 刷新工作流
axios.get('/auth/login').then(res => setTokenAndUser(res))// ... 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)
我遇到了 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 的模型非常困难
我有一个用于常见场景的 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 的完整示例。
您必须已经看到以下功能(在Facebook上),一个带有一些评论的帖子,每个评论都有一个类似的计数器。
https://img4.hostingpics.net/pics/67853820170616003640LaravelNewsAccueil.png
在laravel中,它将像
所以,现在我想获得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)
这计算了每个帖子的所有评论,我想计算每个帖子的每个评论的所有赞。