保定模板建站平台如何去除痘痘有效果

web/2025/9/26 9:54:14/文章来源:
保定模板建站平台,如何去除痘痘有效果,网站建设计划书1200字,外贸建站wordpresscognito在本文中#xff0c;我们将研究使用OAuth协议通过Amazon Cognito对单页应用程序#xff08;使用Vue.js构建#xff09;进行身份验证。 在上一篇文章中#xff0c;我们将服务器端应用程序与Amazon Cognito集成在一起。 搭建单页应用程序 我们将使用vue-cli创建一个空… cognito 在本文中我们将研究使用OAuth协议通过Amazon Cognito对单页应用程序使用Vue.js构建进行身份验证。 在上一篇文章中我们将服务器端应用程序与Amazon Cognito集成在一起。 搭建单页应用程序 我们将使用vue-cli创建一个空的Vuejs应用程序。 可以按照此处的说明安装Vue CLI。 让我们通过发出以下命令来创建一个名为aws-cognito-spa-demo的空应用程序 vue create aws-cognito-spa-demo 系统将提示您选择插件 创建应用程序后您可以导航到该目录并发出命令以运行该应用程序 cd aws-cognito-spa-demo npm instal npm run serve 您将在http// localhost8080运行该应用程序 安装其他依赖项 我们将安装将用于该应用程序的必需节点软件包 npm install --save amazon-cognito-auth-js npm install --save amazon-cognito-identity-js npm install --save vue-router npm install --save axios 在Amazon Cognito中创建新的App Client 我们将通过Amazon Cognito控制台创建一个名为test-spa-client的新App客户test-spa-client 如下所示 通过提供回调URL注销URL允许的OAUth流和OAuth范围的值导航到“应用程序客户端设置”来更新创建的客户端的设置 我们使用隐式授予作为SPA应用程序的OAuth流。 创建环境变量 我们将与Amazon Cognito相关的设置存储在属性文件中Vue CLI将在应用程序运行时使其在环境变量中可用。 在此处可以找到有关在Vue JS应用程序中定义环境变量的更多信息。 我们将在.env文件中存储通用的应用程序设置例如cognito重定向URI注销URI在.env存储一些本地设置。 .env。*。local和.env.local文件从git中被忽略。 因此您不必将本地设置提交到版本控制。 # In .env VUE_APP_COGNITO_REDIRECT_URIhttp: //localhost:8080/login/oauth2/code/cognito VUE_APP_COGNITO_REDIRECT_URI_SIGNOUThttp: //localhost:8080/logout VUE_APP_APP_URLhttp: //localhost:8080 然后是.env.local中的以下内容 VUE_APP_COGNITO_USERPOOL_IDcognito userpool id VUE_APP_COGNITO_APP_DOMAINcognito app domain VUE_APP_COGNITO_CLIENT_IDapp client id 创建用户信息存储 我们将使用全局JSON对象存储已登录的用户信息。 这是使用Vuex的另一种方法。 让我们在src/app/user-info-store.js创建JSON对象 var state { cognitoInfo: {}, loggedIn: false , loadingState: true , errorLoadingState: false } function setLoggedIn(newValue) { state.loggedIn newValue; } function setLoggedOut() { state.loggedIn false ; state.cognitoInfo {}; } function setCognitoInfo(newValue){ state.cognitoInfo newValue; } export default { state: state, setLoggedIn: setLoggedIn, setLoggedOut: setLoggedOut, setCognitoInfo: setCognitoInfo } Amazon Cognito API的包装 让我们为Amazon Cognito API创建包装器src/app/auth.js 这将简化诸如构建CognitoAuth对象登录和注销的操作 /* eslint-disable */ {CognitoAuth, StorageHelper} from amazon-cognito-auth-js import {CognitoAuth, StorageHelper} from ; IndexRouter from ../router/index import IndexRouter from ; UserInfoStore from ./user-info-store import UserInfoStore from ; UserInfoApi from ./user-info-api import UserInfoApi from ; const CLIENT_ID process.env.VUE_APP_COGNITO_CLIENT_ID; const APP_DOMAIN process.env.VUE_APP_COGNITO_APP_DOMAIN; const REDIRECT_URI process.env.VUE_APP_COGNITO_REDIRECT_URI; const USERPOOL_ID process.env.VUE_APP_COGNITO_USERPOOL_ID; const REDIRECT_URI_SIGNOUT process.env.VUE_APP_COGNITO_REDIRECT_URI_SIGNOUT; const APP_URL process.env.VUE_APP_APP_URL; var authData { ClientId : CLIENT_ID, // Your client id here AppWebDomain : APP_DOMAIN, TokenScopesArray : [ openid , email ], RedirectUriSignIn : REDIRECT_URI, RedirectUriSignOut : REDIRECT_URI_SIGNOUT, UserPoolId : USERPOOL_ID, } var auth new CognitoAuth(authData); auth.userhandler { onSuccess: function(result) { console.log( On Success result , result); UserInfoStore.setLoggedIn( true ); UserInfoApi.getUserInfo().then(response { IndexRouter.push( / ); });                 }, onFailure: function(err) { UserInfoStore.setLoggedOut(); IndexRouter.go({ path: /error , query: { message: Login failed due to err } }); Login failed due to err } }); } }; function getUserInfoStorageKey(){ var keyPrefix CognitoIdentityServiceProvider. auth.getClientId(); var tokenUserName auth.signInUserSession.getAccessToken().getUsername(); var userInfoKey keyPrefix . tokenUserName .userInfo ; return userInfoKey; } var storageHelper new StorageHelper(); var storage storageHelper.getStorage(); export default { auth: auth, login(){ auth.getSession(); }, logout(){ if (auth.isUserSignedIn()) { var userInfoKey this .getUserInfoStorageKey(); auth.signOut(); storage.removeItem(userInfoKey); } }, getUserInfoStorageKey, } 从Amazon Cognito获取用户信息 身份验证之后我们可以使用访问令牌来获取有关登录用户的信息。为此我们必须向端点发出GET请求 https://app domain/oauth2/userInfo 。 我们在src/app/user-info.js创建了一个实用程序方法getUserInfo() 如下所示 axios from axios import axios from ; auth from ./auth import auth from ; export default { getUserInfo(){ var jwtToken auth.auth.getSignInUserSession().getAccessToken().jwtToken; const USERINFO_URL https:// auth.auth.getAppWebDomain() /oauth2/userInfo ; var requestData { headers: { Authorization : Bearer jwtToken } } return axios.get(USERINFO_URL, requestData).then(response { return response.data; }); } } 上面部分编写的Cognito包装器已使用此API。 创建Vue组件 让我们为以下目的创建一些Vue组件 显示已登录的用户信息 显示注销成功 错误处理组件 我们将使用Vue路由器将URL路径映射到Vue组件。 组件定义如下所示 Home组件 template div class row div class col h3Welcome, /h3 div class alert alert-info {{userInfo}} /div router-link to /logout Logout /router-link /div /div /template script UserInfoStore from ../app/user-info-store import UserInfoStore from ; export default { name: Home , data: function() { return { userInfo: UserInfoStore.state.cognitoInfo } } } /script style /style LogoutSuccess组件 template div class row div class col h2Logged Out successfully/h2 router-link to /login Login/router-link /div /div /template script export default { mounted: function(){         } } /script 错误组件 template div class alert alert-danger {{message}} /div /template script export default { data: function(){ return { message: } }, mounted(){ this .message this .$route.query.message; } } /script 设置路由器 如前一节所述我们将使用Vue Router将URL路径映射到Vue组件。 我们将在router/index.js设置路由器配置如下所示 /* eslint-disable */ Vue from vue import Vue from Router from vue-router import Router from Home from /components/Home import Home from auth from ../app/auth import auth from ; LogoutSuccess from /components/LogoutSuccess import LogoutSuccess from ; UserInfoStore from ../app/user-info-store import UserInfoStore from ; UserInfoApi from ../app/user-info-api import UserInfoApi from ; ErrorComponent from /components/Error import ErrorComponent from ; Vue.use(Router) function requireAuth(to, from, next) {   if (!auth.auth.isUserSignedIn()) { UserInfoStore.setLoggedIn( false ); next({ path: /login , query: { redirect: to.fullPath } }); } else { UserInfoApi.getUserInfo().then(response { UserInfoStore.setLoggedIn( true ); UserInfoStore.setCognitoInfo(response); next(); });       } } export default new Router({ mode: history , base: / , routes: [ { path: / , name: Home , component: Home, beforeEnter: requireAuth }, { path: /login , beforeEnter(to, from, next){ auth.auth.getSession(); } }, { path: /login/oauth2/code/cognito , beforeEnter(to, from, next){ var currUrl window.location.href;         //console.log(currUrl); auth.auth.parseCognitoWebResponse(currUrl); //next(); } }, { path: /logout , component: LogoutSuccess, beforeEnter(to, from, next){ auth.logout(); next(); } }, { path: /error , component: ErrorComponent } ] }) 我们利用路由对象的beforeEnter属性来添加呈现组件所需的所有先决条件。 然后在此属性中检查用户是否使用我们创建的Cognito包装器登录。 因此对于需要保护的路径我们可以定义beforeEnter属性。 创建的默认应用程序具有一个App.vue组件它将成为我们的根组件。 我们使用router-view/标记表示此处HTML将基于路由器配置中路径解析到的组件。 因此我们的App.vue版本如下所示 template div id app img alt Vue logo src ./assets/logo.png div class contents router-view/ /div /div /template script export default { name: app } /script style #app { font-family: Avenir , Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-align: center; color: #2c3e50; margin-top: 60px; } /style 然后我们更新src/main.js以引用包含路由器配置的目录如下所示 Vue from vue import Vue from App from ./App.vue import App from router from ./router import router from Vue.config.productionTip false new Vue({ render: h h(App), router }).$mount( #app ) 运行应用程序 您可以通过发出以下命令来运行该应用程序 npm run serve 。 导航到localhost8080将带您进入Cognito登录屏幕 输入您已经在用户池中注册的用户的用户名和密码甚至可以注册一个新用户。 登录后您将被重定向回Vue JS应用 注销链接将注销用户。 完整的代码可以在Github仓库中找到 。 翻译自: https://www.javacodegeeks.com/2019/04/amazon-cognito-single-page-application-vue.htmlcognito

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/81204.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

专做健身餐的网站wordpress 说说碎语

每日OJ —— 144. 二叉树的前序遍历 1.题目:144. 二叉树的前序遍历2.方法讲解2.1.算法讲解2.2.代码实现2.3.提交通过展示 1.题目:144. 二叉树的前序遍历 2.方法讲解 2.1.算法讲解 1.首先如果在每次每个节点遍历的时候都去为数组开辟空间,这样…

网站建设从哪入手免费word在线编辑

一、创建vue项目步骤 要创建一个Vue Element UI的项目,你可以按照以下步骤进行操作: 1.确保你已经安装了Node.js和npm(Node.js的包管理器)。你可以在命令行中运行以下命令来检查它们是否已经安装: node -vnpm -v2.使…

中国十大网站排名wordpress is admin

目标 我们学习正则化之前应该先了解我们为什么要用正则化 。正则化解决了什么问题 。我们讲正则化之前 ,先了解一个概念–》过拟合 过拟合 数据增强 L1和L2正则化 Dropout 注意:Dropout是不适合用在卷积神经网络的 提前终止 一般的做法是:记…

网站技术可行性网站怎么做数据转移

北京电子科技学院(BESTI) 实 验 报 告 封 面 课程:信息安全系统设计基础 班级:1452 姓名: 黄亚奇 祁玮 学号: 20145222 20145213 成绩: 指导教师:娄嘉鹏 实验日期:2016.1…

做的好的农产品网站微企点做的网站怎么去底下的

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…

微信网站是多少钱一年wordpress书签插件

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 【翻译】再见, Clean Code!正文那是一个深夜次日早晨这只是一个阶段 【翻译】再见…

天津外贸营销型网站建设怎样做酒店网站ppt

作者:fyupeng 技术专栏:☞ https://github.com/fyupeng 项目地址:☞ https://github.com/fyupeng/distributed-blog-system-api 留给读者 一、介绍 当由于某个业务id发生死循环一直在运行,那么再来一笔相同的业务id执行相同操作&…

汇款账号 网站建设如何让百度收录网站

记录一下成长的历程吧! 刚开始写,没什么文笔,也没什么技术含量,可能主要的是纪录一下平常工作学习中遇到的问题,以及解决的办法吧。或者只有问题,没有解决办法。 前两天项目中遇到的一个问题,由…

广州网站优化服务商整站seo优化推广

引入;发送文件前要准备的工作 分层的基本原则 分层结构中相关的概念 PCISDUPDU 上一层的PDU作为传给下一层的SDU,传输下去 总结

网站建设商城模板培训班设计

作者:Martin Fowler译者:冬哥原文:https://martinfowler.com/articles/remote-or-co-located.html远程工作与同地工作之间不是简单的二分法,相反,团队有多种分布模式,每种模式都有不同的权衡和适合的有效技…

手机参数查询网站宁波网站优化价格

【问题分析】实际工作中,我们经常需要进行统计分析,如统计甘肃省各个地区界内的河流、公路、铁路等的总长度,统计各个地区界内总人口、作物产量、村镇分布等等。ArcGIS提供了强大的空间统计功能,可以一次性操作完成所有操作,省时省力,大大提高了工作效率,减少了错误的发…

宝安做网站的公司网站建设的体会

文章目录1. 题目2. 解题2.1 超时解2.1 改进计算方法1. 题目 假设你设计一个游戏,用一个 m 行 n 列的 2D 网格来存储你的游戏地图。 起始的时候,每个格子的地形都被默认标记为「水」。 我们可以通过使用 addLand 进行操作,将位置 (row, col)…

龙川县建设网站临沂做网站首选

转载自 稍微有点难度的10道java面试题,你会几道? 1、jvm对频繁调用的方法做了哪些优化? 2、常见的攻击手段有哪些?如何防范? 3、restful api有哪些设计原则? 4、hessian是做什么用的?它的…

绍兴网站建设设计制作校园文化设计公司公司排名

70 爬楼梯 (进阶) 爬楼梯问题在我们刚开始学习动态规划的时候作为入门的问题。当时题目考虑的是1或2种走法。如果将能走的台阶设为M,则能产生进阶的题目。通过求解完全背包问题得到。 题目如下: 题目页面 如果最多能走m个台阶&#xff0c…

怎么找到网站站长莱芜百度网站优化

基于Java中的SSM框架实现快餐店线上点餐系统演示 摘要 随着计算机互联网的高速发展。餐饮业的发展也加入了电子商务团队。各种网上点餐系统纷纷涌现,不仅增加了商户的销售量和营业额,而且为买家提供了极大的方便,足不出户,就能订…

昆明网站seo公司seo 网站关键词优化

基于Grad-CAM与KL损失的SSD目标检测算法 人工智能技术与咨询 来源:《电子学报》,作者侯庆山等 摘 要: 鉴于Single Shot Multibox Detector (SSD)算法对中小目标检测时会出现漏检甚至错检的情况,提出一种改进的SSD目标检测算法&…

软装设计案例网站wordpress仪表盘修改

作为一名java工程狮,大家肯定经历过很多面试,但每次几乎都会被问到什么是MVC设计模式,你是怎么理解MVC的类似这样的一系列关于MVC的问题。 【出现频率】 【关键考点】 MVC的含义MVC的结构 【考题分析】  在java Web开发中,存在两…

男人做想看的免费网站杭州企业网站建设 哪里好

一 Web应用模式 在开发Web应用中,有两种应用模式: 1.1 前后端不分离 1.2 前后端分离 二 API接口 为了在团队内部形成共识、防止个人习惯差异引起的混乱,我们需要找到一种大家都觉得很好的接口实现规范,而且这种规范能够让后端写…

西局网站建设怎做网站

1、先安装依赖 自行百度搜索或csdn 2.引入:import table2excel from js-table2excel 3、按钮点击事件(我是直接写在button按钮里面的 你们也可以写一个店家事件写进去) onClick{() > {console.log(list);const column [//数据表单{titl…

网站建设收费标准渠道网站文章没有被收录

目录 前言 查看页面原型,明确需求 页面原型 需求 阅读接口文件 思路分析 功能接口开发 控制层(Controller类) 业务层(Service类) 业务类 业务实现类 持久层(Mapper类) 接口测试 前…