toke验证

需要准备的东西:Vue+axios+Vuex+Vue-router

1.在login.vue中通过发送http请求获取token

  1. //根据api接口获取token
  2. var url = this.HOST + "/session";
  3. this.$axios.post(url, {
  4. username: this.loginForm.username,
  5. password: this.loginForm.pass
  6. }).then(res => {
  7. // console.log(res.data);
  8. this.$message.success('登录成功');
  9. let data = res.data;
  10. //根据store中set_token方法将token保存至localStorage/sessionStorage中,data["Authentication-Token"],获取token的value值
  11. this.$store.commit('set_token', data["Authentication-Token"]);
  12. if (store.state.token) {
  13. this.$router.push('/')
  14. console.log(store.state.token)
  15. } else {
  16. this.$router.replace('/login');
  17. }
  18. }).catch(error => {
  19. // this.$message.error(error.status)
  20. this.loading = false
  21. this.loginBtn = "登录"
  22. this.$message.error('账号或密码错误');
  23. // console.log(error)
  24. })



2.在store.js中对token状态进行监管

  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. Vue.use(Vuex)
  4. export default new Vuex.Store({
  5. state:{
  6. token:''
  7. },
  8. mutations:{
  9. set_token(state, token) {
  10. state.token = token
  11. sessionStorage.token = token
  12. },
  13. del_token(state) {
  14. state.token = ''
  15. sessionStorage.removeItem('token')
  16. }
  17. }
  18. })

3.在router/index.js中
  1. // 页面刷新时,重新赋值token
  2. if (sessionStorage.getItem('token')) {
  3. store.commit('set_token', sessionStorage.getItem('token'))
  4. }
  5. const router = new Router({
  6. mode: "history",
  7. routes
  8. });
  9. router.beforeEach((to, from, next) => {
  10. if (to.matched.some(r => r.meta.requireAuth)) { //这里的requireAuth为路由中定义的 meta:{requireAuth:true},意思为:该路由添加该字段,表示进入该路由需要登陆的
  11. if (store.state.token) {
  12. next();
  13. }
  14. else {
  15. next({
  16. path: '/login',
  17. query: {redirect: to.fullPath}
  18. })
  19. }
  20. }
  21. else {
  22. next();
  23. }
  24. })






4.在main.js中定义全局默认配置:

Axios.defaults.headers.common['Authentication-Token'] = store.state.token;

5.在src/main.js添加拦截器

  1. // 添加请求拦截器
  2. Axios.interceptors.request.use(config => {
  3. // 在发送请求之前做些什么
  4. //判断是否存在token,如果存在将每个页面header都添加token
  5. if(store.state.token){
  6. config.headers.common['Authentication-Token']=store.state.token
  7. }
  8. return config;
  9. }, error => {
  10. // 对请求错误做些什么
  11. return Promise.reject(error);
  12. });
  13. // http response 拦截器
  14. Axios.interceptors.response.use(
  15. response => {
  16. return response;
  17. },
  18. error => {
  19. if (error.response) {
  20. switch (error.response.status) {
  21. case 401:
  22. this.$store.commit('del_token');
  23. router.replace({
  24. path: '/login',
  25. query: {redirect: router.currentRoute.fullPath}//登录成功后跳入浏览的当前页面
  26. })
  27. }
  28. }
  29. return Promise.reject(error.response.data)
  30. });

------------------------------------------------------------------------------------
...................完成以上步骤就可以了..........................
------------------------------------------------------------------------------------

转载来源:https://blog.youkuaiyun.com/qq_34825875/article/details/79569579
### 如何生成 Kibana 的 Enrollment Token 为了生成 Kibana 的 Enrollment Token 并完成配置或集成,可以按照以下方法操作: #### 使用命令生成 Enrollment Token 可以通过 Elasticsearch 提供的工具 `elasticsearch-create-enrollment-token` 来生成 Kibana 的 Enrollment Token。以下是具体的操作方式: 运行以下命令来生成适用于 Kibana 的 Enrollment Token: ```bash ./elasticsearch-create-enrollment-token -s kibana --url "https://<Elasticsearch_IP>:9200" ``` 其中 `<Elasticsearch_IP>` 是 Elasticsearch 实例所在的 IP 地址[^1]。 如果遇到错误提示类似于 “Generate a new enrollment token or configure manually”,则表示需要重新生成新的 Token[^3]。此时只需再次执行上述命令即可获得一个新的 Token。 #### 配置 Kibana 证书文件 除了生成 Enrollment Token 外,还需要为 Kibana 创建并配置 SSL/TLS 证书以确保安全连接。以下是创建和配置证书的具体步骤: 1. **生成 CSR 请求** 在 Elasticsearch 安装目录下运行以下命令生成证书签名请求 (CSR) 和私钥: ```bash cd /data/software/es/elasticsearch-8.1.0/ bin/elasticsearch-certutil csr -name kibana -dns <hostname> ``` 替换 `<hostname>` 为实际主机名或者 DNS 名称[^2]。 2. **解压生成的文件包** 命令完成后会生成一个压缩包 (`csr-bundle.zip`),将其解压并将必要的文件移动至 Kibana 的配置目录中: ```bash unzip csr-bundle.zip mv kibana.csr kibana.key /data/software/es/kibana/kibana-8.1.0/config/ ``` 3. **生成 CRT 文件** 切换到 Kibana 的配置目录并使用 OpenSSL 工具生成 `.crt` 文件: ```bash cd /data/software/es/kibana/kibana-8.1.0/config/ openssl x509 -req -in kibana.csr -signkey kibana.key -out kibana.crt ``` 通过以上步骤,Kibana 所需的安全证书已经准备完毕。 #### 版本兼容性注意事项 对于特定版本组合(如 Elasticsearch 8.8.1、Kibana 8.8.1),需要注意的是,在初始设置过程中可能会因为 Token 超时或其他原因导致无法成功建立连接。在这种情况下,建议检查日志文件定位问题,并尝试重新生成 Token 或者调整相关参数[^5]。 另外,当访问 Kibana 页面时如果出现类似 `unable to fetch mapping` 错误,则可能是因为数据索引尚未正确初始化或者是其他组件之间的通信存在问题[^4]。这种情形通常不涉及 Logstash 是否存在,而是更倾向于 Elasticsearch 数据源的状态验证。 --- ### 示例代码片段 下面是一个简单的脚本用于自动化部分流程: ```bash #!/bin/bash ES_HOME="/data/software/es/elasticsearch-8.1.0/" KI_HOME="/data/software/es/kibana/kibana-8.1.0/" # Step 1: Generate the enrollment token $ES_HOME/bin/elasticsearch-create-enrollment-token -s kibana --url "https://192.168.182.128:9200" # Step 2: Create certificate request and move files cd $ES_HOME $ES_HOME/bin/elasticsearch-certutil csr -name kibana -dns linux1 unzip csr-bundle.zip mv kibana.csr kibana.key $KI_HOME/config/ # Step 3: Generate .crt file cd $KI_HOME/config/ openssl x509 -req -in kibana.csr -signkey kibana.key -out kibana.crt ``` 此脚本涵盖了从生成 Token 到处理证书的主要过程。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值