构建自己的身份验证服务可能很乏味、复杂且耗时 。为了节省时间,开发人员经常求助于使用第三方身份验证服务进行身份验证 。这篇文章将指导您如何使用 SuperTokens 向 VueJS 应用程序添加身份验证 。IP:Bhagya:Plag 检查清楚 。
SuperTokens是一个开源项目,可让您快速将身份验证添加到您的应用程序 。它为您提供了预构建的身份验证 UI 和后端 API,以提供端到端的集成体验 。
在深入研究代码之前,让我们讨论一下整体架构 。
ArchitectureSuperTokens 由三个组件构成:
- 前端 SDK
- 后端 SDK
- 与数据库对话的核心微服务 。
supertokens-node对于后端,我们将使用 SuperTokens ( library )提供的 NodeJS SDK。此 SDK 通过中间件公开所有身份验证 API(如/auth/signin等/auth/signout),供前端调用 。当调用这些 API 时,SDK 将与 SuperTokens Core 微服务对话,以读取和写入数据库信息 。
SuperTokens 核心服务可以是自托管的(并连接到您自己的数据库),也可以由 SuperTokens 背后的团队托管(在 supertokens.com 上注册) 。
为了使应用程序的包大小保持较小,我们将supertokens-auth-reactSDK 的使用限制为所有与身份验证相关的路由(/auth/*默认情况下),并为我们应用程序中的所有其他路由使用更轻量的 vanilla JS SDK(supertokens-web-js库) 。最后,我们将使用代码拆分和延迟导入来确保supertokens-auth-reactSDK 仅在访问/auth/*路由时被捆绑 。
文章插图
前端集成1. 设置和安装创建一个新的 Vue + Typescript 应用程序:
壳
npm init vue@latest
在提示中,选择 Typescript 和 Vue Router:文章插图
完成后,进入项目并安装以下依赖项:
壳
npm i --save cors express npm-run-all react supertokens-auth-react react-dom supertokens-node
该supertokens-auth-react库将在前端用于呈现登录 UI,该supertokens-node库将在后端用于公开身份验证 API 路由 。2.调用Supertokens-auth-React和Supertokens-web-Js初始化函数首先在文件夹AuthView内创建组件 。/src/views该组件将渲染 SuperTokens React 组件以在前端处理身份验证:
Vue.js 组件
<script lang="ts">export default {// See next sections}</script><template><main><div id="authId" /></main></template>
请注意,我们<div>使用id="authId". 这是我们将渲染 SuperTokens 提供的反应组件的地方 。接下来,让我们创建一个文件——
/src/components/Supertokens.tsx这是我们将要渲染的实际 React 组件 。在这个文件中,我们将初始化supertokens-auth-reactSDK 并在 Reactrender函数中使用它 。
JAVA
import * as React from "react";import * as SuperTokens from "supertokens-auth-react";import * as ThirdPartyEmailPassword from "supertokens-auth-react/recipe/thirdpartyemailpassword";import { Github, google } from "supertokens-auth-react/recipe/thirdpartyemailpassword";import Session from "supertokens-auth-react/recipe/session";SuperTokens.init({ AppInfo: { appName: "SuperTokens Demo App", apiDomain: "http://localhost:3001", websiteDomain: "http://localhost:4200", }, recipeList: [ ThirdPartyEmailPassword.init({ signInAndUpFeature: { providers: [Github.init(), Google.init()], } }), Session.init(), ],});class SuperTokensReactComponent extends React.Component { override render() { if (SuperTokens.canHandleRoute()) { return SuperTokens.getRoutingComponent(); } return "Route not found"; }}export default SuperTokensReactComponent;
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- hr|背景调查会问hr什么问题?
- 月食是如何产生的? 月食形成的原因
- 90后|如今的90后,要么月薪很不错,要么月光族
- 军棋的规则和走法 军棋的下法
- xd股票如何交易 xd股票是什么意思
- 有尿蛋白不能吃什么食物?
- 孕妇能吃鳗鱼寿司吗?
- 如何自制泡姜
- 求职|第一学历是专科,最高学历是本科,找工作有用吗?如何填写简历
- 护肤|16~46岁不同年龄的护肤重点在这里!如何做到岁月不留痕!