You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
import{request}from'@/plugins/request'//登录exportconstlogin=data=>{returnrequest({method: 'POST',url: "/api/users/login",
data
})}//注册exportconstregister=data=>{returnrequest({method: 'POST',url: "/api/users",
data
})}//修改exportconstupdateUser=data=>{returnrequest({method: 'PUT',url: "/api/user",
data
})}
/** * 验证是否登录的中间件 */exportdefaultfunction({ store, redirect }){// If the user is not authenticatedconsole.log('store',store.state)if(!store.state.user){returnredirect('/login')}}
importaxiosfrom'axios'//通过插件机制获取到上下文对象(query、params、req、res、app、store...)//插件导出函数必须作为default成员exportdefault({ store })=>{//请求拦截器:任何请求都要经过请求拦截器//可以在请求拦截器中做一些公共的业务处理,例如统一设置tokenrequest.interceptors.request.use(function(config){//请求经过这里const{ user }=store.stateif(user&&user.token){config.headers.Authorization=`Token ${user.token}`}//返回config请求配置对象returnconfig;},function(error){// 如果请求失败(此时请求还没有发出去)就会进入这里returnPromise.reject(error);});}//导出一个函数
项目结构
创建项目
package.json
中添加启动脚本pages/index.vue
导入样式资源
Header === 模板
app.html
Header === 视图布局
pages/layout/index.vue
登录注册
pages/login.vue
也需要区分登录和为登录状态
需要添加错误校验结果
剩余页面(略)
nuxt.config.js
封装请求模块
安装axios:
plugins\request.js
api\user.js
pages\login\index.vue
引入:api\tag.js
api\profile.js
api\article.js
登录注册
跨域身份验证
登录态持久化
存储用户登录状态 === Vuex
store
index.js
在此目录中创建 文件将启用存储store
选项添加到根Vue实例安装js-cookie:
安装cookieparser:
store/index.js
处理页面访问权限 === 路由中间件
middleware\authenticated.js
:没登录转跳登录页middleware\notAuthenticated.js
:用于拦截已登录状态在地址栏输入登录页面地址,转跳到首页在需要判断登录权限的页面中配置使用中间件:
首页模块
pages\home\index.vue
获取数据
分页处理
页码处理
视图处理
query
)以及高亮(exact
)问题统一添加数据TOKEN
nuxtServerInit
展示文章标签列表
封装接口请求方法
数据过滤
日期格式处理
引入nuxtjs的插件机制:
nuxt.config.js
plugins\dayjs.js
部署
配置Host + Port
nuxt.config.hs
使用PM2启动服务
pm2.config.js
服务器上运行:
github自动化部署
The text was updated successfully, but these errors were encountered: