如何使用JWT(后端快递)将nuxt auth模块(前端)与本地护照一起使用?
定义 jwt 策略以验证 jwt 令牌(express)
var JwtStrategy = require('passport-jwt').Strategy,
ExtractJwt = require('passport-jwt').ExtractJwt;
var opts = {}
opts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();
opts.secretOrKey = 'secret';
opts.issuer = 'accounts.examplesoft.com';
opts.audience = 'yoursite.net';
passport.use(new JwtStrategy(opts, function(jwt_payload, done) {
User.findOne({id: jwt_payload.sub}, function(err, user) {
if (err) {
return done(err, false);
}
if (user) {
return done(null, user);
} else {
return done(null, false);
// or you could create a new account
}
});
}));
Run Code Online (Sandbox Code Playgroud)
定义用于验证用户名和密码的本地策略(快速)
passport.use(new LocalStrategy(
function(username, password, done) …Run Code Online (Sandbox Code Playgroud) 我在 Express 中以编程方式使用 nuxt 和 nuxt.render 中间件,如下所示
\nconst { Nuxt, Builder } = require(\'nuxt\')\nconst app = require(\'express\')()\n\nconst api = require(\'../api\')\napp.use(\'/api\', api)\n\nlet config = require(\'../nuxt.config.js\')\nconfig.dev = !(process.env.NODE_ENV === \'production\')\n\n// Init Nuxt.js\nconst nuxt = new Nuxt(config)\napp.use(nuxt.render)\n\nasync function start() {\n// Build only in dev mode\n if (config.dev) {\n const builder = new Builder(nuxt)\n await builder.build()\n }\n\n // Listen the server\n app.listen(port, host)\n console.log(\'Server listening on \' + host + \':\' + port)\n}\nstart()\nRun Code Online (Sandbox Code Playgroud)\n当我开发服务器 api 路由并对服务器端 api 文件进行一些更改并重新启动服务器时,每次都会构建整个 nuxt 项目,这花费了太多时间。这很不方便,因为 nuxt 文件没有变化,只有 …
我在 nuxt js 应用程序中配置 gtag 时确实遇到了麻烦。
我遵循这个指南:
https://www.carlcassar.com/articles/add-google-analytics-to-a-nuxt-js-app/
这是我的插件:
import Vue from 'vue';
import VueGtag from 'vue-gtag';
Vue.use(VueGtag, {
config: { id: 'G-*********' },
appName: 'app-name',
});
Run Code Online (Sandbox Code Playgroud)
这就是我在 nuxt.confing.js 中加载它的方式
plugins: [
"@/plugins/aos.client",
"@/plugins/progress-path",
"@/plugins/vue-input-ui",
'@plugins/vue-js-modal.js',
"@/plugins/paypal",
"@/plugins/autocomplete",
"@/plugins/lazy-load",
{
src: './plugins/gtag.js',
mode: 'client'
},
],
Run Code Online (Sandbox Code Playgroud)
但我确实面临着无法将任何内容发送到分析控制台的麻烦。
这是来自 google 的 gtag
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-*********"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-*********');
</script>
Run Code Online (Sandbox Code Playgroud)
我哪里错了?
感谢大家
我有一个从用户那里获取地址的组件,其中一部分是状态。我按照文档进行操作,但找不到我的代码与文档相比有什么不同。问题是,当我单击按钮显示选项时,什么也看不见。如果我输入名称,它会按预期进行选择。所有其余输入都可以正常工作,但它们是 v 文本字段。除了一些验证内容之外,我没有发现任何问题。
<template>
<v-card>
<v-container>
<!-- some other stuff -->
<v-select
:items="items"
label="State"
@input="_=>state=_"
></v-select>
</v-container>
</v-card>
</template>
<script>
export default {
data: () => ({
items: [
'', 'AL', 'AK', 'AZ', 'AR',
'CA', 'CO', 'CT', 'DE', 'DC',
'FL', 'GA', 'HI', 'ID', 'IL',
'IN', 'IA', 'KS', 'KY', 'LA',
'ME', 'MD', 'MA', 'MI', 'MN',
'MO', 'MS', 'MT', 'NE', 'NV',
'NH', 'NH', 'NM', 'NY', 'NC',
'ND', 'OH', 'OK', 'OR', 'PA',
'RI', 'SC', 'SD', 'TN', 'TX',
'UT', 'VT', 'VA', 'WA', 'WV',
'WI', …Run Code Online (Sandbox Code Playgroud) nuxt.js ×3
vue.js ×2
express ×1
gtag.js ×1
node.js ×1
passport-jwt ×1
passport.js ×1
v-select ×1
vuetify.js ×1