| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> JavaScript知识库 -> 使用React快速集成OneAuth -> 正文阅读 |
|
|
[JavaScript知识库]使用React快速集成OneAuth |
使用React快速集成OneAuth准备工作本节介绍如何将OneAuth 与您的SPA应用集成,使用OneAuth作为SPA应用的用户存储库并实现用户登录。 如果您正在构建一个由服务器端渲染的Web应用,参考Web应用集成用户登录 前提条件:
如果你没有相关的应用,只是期望学习如何使用,建议参考如下的资料 : React quickstart教您构建Vue.js应用程序的基础知识,React Quickstart 或者,如果您想快速开始,只需下载一个应用示例,请下载我们的React示例。 在OneAuth控制台创建SPA应用在您使用OneAuth可以登录用户之前,您需要在管理后台创建一个单页应用用于的OneAuth的 应用集成。
安装SDKnpm i --save @oneauth/sdk-core @oneauth/sdk-react @oneauth/sdk-core 会提供登录登出和鉴权所需的方法,@oneauth/sdk-react 中会提供对路由的鉴权功能和准备好的登录重定向页面 @oneauth/sdk-core 可单独使用。也可搭配@oneauth/sdk-react 使用。本文使用@oneauth/sdk-core 和@oneauth/sdk-react 共同来完成集成。 配置 @oneauth/sdk-react初始化时需要传入 实例化@oneauth/sdk-core 和@oneauth/sdk-react@oneauth/sdk-react 提供了一个登录重定向的页面,和一个鉴权路由。 你需要把登录重定向页面配置到路由当中。 并将需要鉴权的页面配置在鉴权路由之下。
import OneAuth from '@oneauth/sdk-core'
import { Security, LoginCallback, SecurityRoute } from '@oneauth/sdk-react'
import { BrowserRouter, Route, Link } from 'react-router-dom'
function App() {
?const oneAuth = new OneAuth({
? ?issuer: `kang.oneauth.cn/oauth/v1`,
? ?clientId: `2YXXZ78611K0c8906MX6RJ8c0s84VcQB`,
? ?redirectUri: `[http://localhost:3000/callback](http://localhost:3000/callback)`,
? ?scopes: ['openid', 'profile', 'email'],
})
?return <>{/** 省略 **/}</>
}
?
export default App
?
? 添加一个登录按钮import OneAuth from '@oneauth/sdk-core'
import { Security, LoginCallback, SecurityRoute } from '@oneauth/sdk-react'
import { BrowserRouter, Route, Link } from 'react-router-dom'
function App() {
?const oneAuth = new OneAuth({
? ?issuer: `kang.oneauth.cn/oauth/v1`,
? ?clientId: `2YXXZ78611K0c8906MX6RJ8c0s84VcQB`,
? ?redirectUri: `[http://localhost:3000/callback](http://localhost:3000/callback)`,
? ?scopes: ['openid', 'profile', 'email'],
})
?//添加一个登录按钮
?const login = () => oneAuth.login()
?return (
? ?<>
? ? ?<button onClick={login}>Login</button>
? ?</>
)
}
?
export default App
添加路由需要从@oneauth/sdk-react 中引入
并放置到页面中。 然后将@oneauth/sdk-core 的实例传递给 <Security oneAuth={oneAuth} />
import './App.css'
import OneAuth from '@oneauth/sdk-core'
import { Security, LoginCallback, SecurityRoute } from '@oneauth/sdk-react'
import { BrowserRouter, Route, Link } from 'react-router-dom'
import { About } from './about'
function App() {
?const oneAuth = new OneAuth({
? ?issuer: `kang.oneauth.cn/oauth/v1`,
? ?clientId: `2YXXZ78611K0c8906MX6RJ8c0s84VcQB`,
? ?redirectUri: `[http://localhost:3000/callback](http://localhost:3000/callback)`,
? ?scopes: ['openid', 'profile', 'email'],
})
?const login = () => oneAuth.login()
?return (
? ?<BrowserRouter>
? ? ?<div className="App">
? ? ? ?<Security oneAuth={oneAuth}>
? ? ? ? ?<button onClick={login}>Login</button>
? ? ? ? ?<br />
? ? ? ? ?<Link to="/home">Home</Link>
? ? ? ? ?<Link to="/about">About</Link>
? ? ? ? ?<Route path="/home">
? ? ? ? ? ?<h1>Home</h1>
? ? ? ? ?</Route>
? ? ? ? ?<Route path="/about">
? ? ? ? ? ?<h1>About</h1>
? ? ? ? ?</Route>
? ? ? ?</Security>
? ? ?</div>
? ?</BrowserRouter>
)
}
?
export default App
添加登录重定向页面配置登录重定向页面的路由时, 需与@oneauth/sdk-core 的实例化参数 import './App.css'
import OneAuth from '@oneauth/sdk-core'
import { Security, LoginCallback, SecurityRoute } from '@oneauth/sdk-react'
import { BrowserRouter, Route, Link } from 'react-router-dom'
import { About } from './about'
function App() {
?const oneAuth = new OneAuth({
? ?issuer: `kang.oneauth.cn/oauth/v1`,
? ?clientId: `2YXXZ78611K0c8906MX6RJ8c0s84VcQB`,
? ?redirectUri: `[http://localhost:3000/callback](http://localhost:3000/callback)`,
? ?scopes: ['openid', 'profile', 'email'],
})
?const login = () => oneAuth.login()
?return (
? ?<BrowserRouter>
? ? ?<div className="App">
? ? ? ?<Security oneAuth={oneAuth}>
? ? ? ? ?<button onClick={login}>Login</button>
? ? ? ? ?<br />
? ? ? ? ?<Link to="/home">Home</Link>
? ? ? ? ?<Link to="/about">About</Link>
? ? ? ? ?<Route path="/home">
? ? ? ? ? ?<h1>Home</h1>
? ? ? ? ?</Route>
? ? ? ? ?<Route path="/about">
? ? ? ? ? ?<h1>About</h1>
? ? ? ? ?</Route>
? ? ? ? ?<Route path="/callback">
? ? ? ? ? ?<LoginCallback />
? ? ? ? ?</Route>
? ? ? ?</Security>
? ? ?</div>
? ?</BrowserRouter>
)
}
?
export default App
添加安全路由给 about 页面添加鉴权 如此一来,每次打开 about 页面时都会检查用户是否登录了。 如果没有登录则会跳转到登录页。 登录完成后会跳转回来。 import './App.css'
import OneAuth from '@oneauth/sdk-core'
import { Security, LoginCallback, SecurityRoute } from '@oneauth/sdk-react'
import { BrowserRouter, Route, Link } from 'react-router-dom'
import { About } from './about'
function App() {
?const oneAuth = new OneAuth({
? ?issuer: `kang.oneauth.cn/oauth/v1`,
? ?clientId: `2YXXZ78611K0c8906MX6RJ8c0s84VcQB`,
? ?redirectUri: `[http://localhost:3000/callback](http://localhost:3000/callback)`,
? ?scopes: ['openid', 'profile', 'email'],
})
?const login = () => oneAuth.login()
?return (
? ?<BrowserRouter>
? ? ?<div className="App">
? ? ? ?<Security oneAuth={oneAuth}>
? ? ? ? ?<button onClick={login}>Login</button>
? ? ? ? ?<br />
? ? ? ? ?<Link to="/home">Home</Link>
? ? ? ? ?<Link to="/about">About</Link>
? ? ? ? ?<Route path="/home">
? ? ? ? ? ?<h1>Home</h1>
? ? ? ? ?</Route>
? ? ? ? ?<SecurityRoute path="/about">
? ? ? ? ? ?<About />
? ? ? ? ?</SecurityRoute>
? ? ? ? ?<Route path="/callback">
? ? ? ? ? ?<LoginCallback />
? ? ? ? ?</Route>
? ? ? ?</Security>
? ? ?</div>
? ?</BrowserRouter>
)
}
?
export default App
? |
|
|
| JavaScript知识库 最新文章 |
| ES6的相关知识点 |
| react 函数式组件 & react其他一些总结 |
| Vue基础超详细 |
| 前端JS也可以连点成线(Vue中运用 AntVG6) |
| Vue事件处理的基本使用 |
| Vue后台项目的记录 (一) |
| 前后端分离vue跨域,devServer配置proxy代理 |
| TypeScript |
| 初识vuex |
| vue项目安装包指令收集 |
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/25 2:46:11- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |