下面是我使用firebase的一个简单示例:
let firebase = require('firebase');
firebase.initializeApp({
serviceAccount: './config/firebase.json',
databaseURL: 'https://thenameofhedatabase.firebaseio.com'
});
let db = firebase.database();
...
...
Run Code Online (Sandbox Code Playgroud)
关键是在所有代码执行后,db对象保存node.js会话.我不想打电话process.exit(0).那么,关闭或处理dbfirebase对象的正确方法是什么?
只是想知道create-react-app如何使用.js文件而不是.jsx用于jsx标记.是因为特殊的webpack配置吗?顺便问一下,在哪里可以找到使用create-react-app创建的项目的webpack和babel配置?
试图在核心mvc项目中打开防伪,但没有运气.做了什么:
添加过滤器以自动检查每个POST请求上的防伪标记.
services.AddMvc(o =>
{
o.Filters.Add(new AutoValidateAntiforgeryTokenAttribute());
});
Run Code Online (Sandbox Code Playgroud)
令牌生成以这种方式添加到每个页面.
@inject Microsoft.AspNetCore.Antiforgery.IAntiforgery Antiforgery;
@{
var antiforgeryRequestToken = Antiforgery.GetAndStoreTokens(Context).RequestToken;
}
...
...
<script>
var antiforgeryToken = @Json.Serialize(antiforgeryRequestToken);
</script>
Run Code Online (Sandbox Code Playgroud)
最后每个客户端ajax请求都添加了RequestVerificationToken这种方式.
var options = {
url: o.url, type: 'POST', data: o.params, headers: { 'RequestVerificationToken': antiforgeryToken } };
Run Code Online (Sandbox Code Playgroud)
我可以看到每个ajax请求都有令牌,但我总是为任何POST请求获得400.如果我禁用过滤器,它可以正常工作.但是一旦我启用它,asp.net核心就会在每个POST请求上启动验证,它总是返回400.
有任何想法吗?
更新:
我按照评论中的说明进行操作,现在代码如下所示.ConfigureServices方法:
services.AddMvc(o => {
o.Filters.Add(new HandleAllExceptionsFilterFactory());
o.Filters.Add(new AutoValidateAntiforgeryTokenAttribute());
});
services.AddAntiforgery(o => o.CookieName = "XSRF-TOKEN");
Run Code Online (Sandbox Code Playgroud)
这是注册的中间件:
app.Use(next => context => {
if (context.Request.Path == "/")
{
var antiforgery = app.ApplicationServices.GetService<IAntiforgery>();
var token = …Run Code Online (Sandbox Code Playgroud) javascript ×2
asp.net ×1
asp.net-core ×1
asp.net-mvc ×1
firebase ×1
jsx ×1
node.js ×1
reactjs ×1
webpack ×1