当前位置: 首页 > news >正文

建设部网人事考试网站/网页设计软件

建设部网人事考试网站,网页设计软件,网站专题建设,杭州市住房和城乡建设部网站react 身份证校验校验本文最初出现在OKTA博客上 。 感谢您支持使SitePoint成为可能的合作伙伴。 根据JAXenter的说法, React已Swift成为最受欢迎的前端Web框架之一,并且仅次于普通的旧HTML5。 因此, 开发人员正在学习它 ,而雇主正…

react 身份证校验校验

本文最初出现在OKTA博客上 。 感谢您支持使SitePoint成为可能的合作伙伴。

根据JAXenter的说法, React已Swift成为最受欢迎的前端Web框架之一,并且仅次于普通的旧HTML5。 因此, 开发人员正在学习它 ,而雇主正在要求它也就不足为奇了 。

在本教程中,您将从一个非常简单的React应用程序开始,该应用程序具有几个页面和内置的一些路由,并使用Okta的Sign-In Widget添加身份验证。 Sign-In Widget是一个可嵌入的Javascript Widget,它使开发人员可以在React应用程序中以最小的努力使用Okta的安全,可扩展的体系结构。 让我们开始吧!

获取简单的React Seed项目

首先克隆简单的React Seed项目。

git clone https://github.com/leebrandt/simple-react-seed.git okta-react-widget-sample
cd okta-react-widget-sample

添加Okta登录小部件

使用npm安装Okta登录小部件 。

npm install @okta/okta-signin-widget@2.3.0 --save

这会将Okta登录小部件代码添加到您的node_modules文件夹中。 我们将使用2.3.0版的“登录小部件”。

Okta在node_modules中

然后从Okta CDN在index.html文件中添加小部件的样式。 将这些行添加到<head>标记内:

<link
href="https://ok1static.oktacdn.com/assets/js/sdk/okta-signin-widget/2.3.0/css/okta-sign-in.min.css"
type="text/css"
rel="stylesheet"/>
<!-- Theme file: Customize or replace this file if you want to override our default styles -->
<link
href="https://ok1static.oktacdn.com/assets/js/sdk/okta-signin-widget/2.3.0/css/okta-theme.css"
type="text/css"
rel="stylesheet"/>

LoginPage组件

首先,在./src/components文件夹中创建一个名为auth的文件夹,然后在LoginPage组件所在的位置创建一个名为LoginPage.js的文件。

从最基本的组件开始:

import React from 'react';
export default class LoginPage extends React.Component{
render(){
return(
<div>Login Page</div>
);
}
}

这个小组件并没有什么用,但是至少您现在有了一个将LoginPage添加到路由中的句柄。 因此,在./src/app.js文件中,您将在顶部导入组件:

import LoginPage from './components/auth/LoginPage';

然后将路径添加到主路径(路径为“ /”的路径)内

<Route path="/login" component={LoginPage}/>

在Okta中添加OpenID Connect应用程序

为了使用Okta作为OpenID Connect提供程序进行身份验证,您需要在Okta开发人员控制台中设置一个应用程序。

如果您没有Okta开发者帐户, 请创建一个 ! 登录后,单击顶部导航栏中的“ 应用程序 ”,然后单击“ 添加应用程序” 。 选择SPA作为平台,然后单击Next。 将重定向URI更改为http://localhost:3000 ,然后单击“完成”。 将使用以下设置创建该应用程序:

OIDC应用程序设置

现在,您已经在Okta中创建了一个应用程序,您可以设置该小部件以与您的新应用程序对话!

将小部件添加到您的组件

import React from 'react';
import OktaSignIn from '@okta/okta-signin-widget';
export default class LoginPage extends React.Component{
constructor(){
super();
this.widget = new OktaSignIn({
baseUrl: 'https://{oktaOrgUrl}',
clientId: '{clientId}',
redirectUri: 'http://localhost:3000',
authParams: {
responseType: 'id_token'
}
});
}
render(){
return(
<div>Login Page</div>
);
}
}

复制从应用程序的设置页面生成的客户端ID,并将其粘贴到{clientId} 。 确保您还用Okta组织URL替换了{oktaOrgUrl} ,可以通过返回开发者控制台中的“仪表板”主页面找到该URL。 通常情况如下: https://dev-12345.oktapreview.com : https://dev-12345.oktapreview.com

到目前为止,您已经从之前安装的Okta登录小部件 npm模块导入了OktaSignIn函数。 接下来,在组件的构造函数中,使用应用程序的配置初始化OktaSignIn的实例。 这样,应用程序代码将能够与Okta对话,并且Okta将识别出这是您刚刚创建的应用程序。

显示登录小部件

接下来,您将创建代码以将Sign-In Widget实际呈现到页面! 您需要更改render方法,以创建可将小部件呈现到HTML元素。 确保获得对将要呈现的元素的引用 。 然后,添加一个componentDidMount函数,以确保您不会在HTML元素出现在页面上之前尝试呈现窗口小部件。

import React from 'react';
import OktaSignIn from '@okta/okta-signin-widget';
export default class LoginPage extends React.Component{
constructor(){
super();
this.state = {user:null};
this.widget = new OktaSignIn({
baseUrl: 'https://{oktaOrgUrl}',
clientId: '{clientId}',
redirectUri: 'http://localhost:3000',
authParams: {
responseType: 'id_token'
}
});
}
componentDidMount(){
this.widget.renderEl({el:this.loginContainer},
(response) => {
this.setState({user: response.claims.email});
},
(err) => {
console.log(err);
}
);
}
render(){
return(
<div ref={(div) => {this.loginContainer = div; }} />
);
}
}

免费学习PHP!

全面介绍PHP和MySQL,从而实现服务器端编程的飞跃。

原价$ 11.95 您的完全免费

您还向组件添加了状态。 如果您使用的是流量实现,则自然会来自应用程序状态。 但是,为了使本教程简单LoginPage ,请让您的LoginPage跟踪其自身的状态。

检查用户是否登录

我们快到了,但是您不一定要立即渲染小部件。 您需要添加检查以确保用户尚未登录,然后将renderEl移到名为showLogin的函数中。

// ...other stuff removed for brevity's sake
componentDidMount(){
this.widget.session.get((response) => {
if(response.status !== 'INACTIVE'){
this.setState({user:response.login});
}else{
this.showLogin();
}
});
}
showLogin(){
Backbone.history.stop();
this.widget.renderEl({el:this.loginContainer},
(response) => {
this.setState({user: response.claims.email});
},
(err) => {
console.log(err);
}
);
}

您可能已经在showLogin方法中注意到了一些奇怪的代码。 第一行: Backbone.history.stop() 。 小部件本身使用Backbone.js在其自己的屏幕之间进行导航(登录,忘记密码等),并且在呈现时将启动Backbone.history 。 由于您现在已将其移至showLogin函数中,因此只要调用该函数,该小部件都将重新呈现。 因此,这只是告诉Backbone停止历史记录的一个小技巧,因为它将在呈现小部件时重新启动。

最终的LoginPage React组件

让我们总结一下。 确保将类的this上下文绑定到每个方法。 添加logout方法,然后更改render方法,以根据是否有当前登录的用户来决定要渲染的内容。

因此, LoginPage.js的最终版本应如下所示:

import React from 'react';
import OktaSignIn from '@okta/okta-signin-widget';
export default class LoginPage extends React.Component{
constructor(){
super();
this.state = { user: null };
this.widget = new OktaSignIn({
baseUrl: 'https://{oktaOrgUrl}',
clientId: '{clientId}',
redirectUri: 'http://localhost:3000',
authParams: {
responseType: 'id_token'
}
});
this.showLogin = this.showLogin.bind(this);
this.logout = this.logout.bind(this);
}
componentDidMount(){
this.widget.session.get((response) => {
if(response.status !== 'INACTIVE'){
this.setState({user:response.login});
}else{
this.showLogin();
}
});
}
showLogin(){
Backbone.history.stop();
this.widget.renderEl({el:this.loginContainer},
(response) => {
this.setState({user: response.claims.email});
},
(err) => {
console.log(err);
}
);
}
logout(){
this.widget.signOut(() => {
this.setState({user: null});
this.showLogin();
});
}
render(){
return(
<div>
{this.state.user ? (
<div className="container">
<div>Welcome, {this.state.user}!</div>
<button onClick={this.logout}>Logout</button>
</div>
) : null}
{this.state.user ? null : (
<div ref={(div) => {this.loginContainer = div; }} />
)}
</div>
);
}
}

现在,React已连接以处理/login路由,并显示Okta登录小部件以提示用户登录。

通过编辑./src/components/common/Navigation.js并在现有的Contact链接下添加一个新链接,将Login链接添加到顶部导航栏:

<li><Link to="login">Login</Link></li>

看看这个

现在安装npm软件包:

npm install

立即运行应用程序(使用npm start )时,您应该看到类似以下内容:

成品样品

如果应用程序有任何问题,请尝试删除node_modules文件夹 package-lock.json文件,然后重新运行npm install命令。 这应该可以解决程序包依赖管理中的所有问题。

如果可行:恭喜! 如果没有,请用okta标签向Stack Overflow发布问题,或在Twitter @leebrandt上打我。

React + Okta

您可以在GitHub上的此博客文章中找到该应用程序的完整版本。

在应用程序中建立身份验证很困难。 在您构建的每个应用程序中一遍又一遍地构建它的乐趣就更少了。 Okta为您完成了艰辛的工作,使成为一名开发人员变得更加有趣! 注册一个永久免费的开发者帐户 ,今天就尝试Okta!

希望您喜欢我们的React支持的快速浏览。 如果您对Okta的功能或下一步的建设有疑问,请在Twitter @leebrandt上打我,在下面发表评论,或在GitHub上发布问题。

翻译自: https://www.sitepoint.com/build-react-app-user-authentication-15-minutes/

react 身份证校验校验

http://www.lbrq.cn/news/1312687.html

相关文章:

  • 网站不足之处/核心关键词和长尾关键词举例
  • wordpress 字体设置/seo专业知识培训
  • 做网站同行/刷百度关键词排名优化
  • 有没有好的做海报的网站/seo网络推广经理
  • 厦门住房建设局网站首页/深圳新闻今日最新
  • 仁寿建设局网站/天津网站优化软件
  • 永嘉高端网站建设效果/合肥seo排名公司
  • 网站广东省备案/seo网站优化建议
  • 装修公司网站怎么建设/软文发稿平台有哪些
  • 国家卫生计生委网站入口/电商软文广告经典案例
  • 网上做代销上哪个网站/厦门百度广告开户
  • 请科技公司做网站需要注意什么/清远市发布
  • 邳州市建设局网站/竞价推广专员
  • 黄浦区seo网站建设/我想在百度上发布广告怎么发
  • 做淘宝客网站是如何盈利的/推推蛙品牌策划
  • wordpress电影站/网络营销的效果是什么
  • 永久免费手机网站建设/广州搜发网络科技有限公司
  • 做类似于58同城的网站/网站优化的关键词
  • 企业网站建设合同书模板/官网优化 报价
  • app开发公司哪个靠谱/滕州seo
  • wordpress邮件美化/seo博客模板
  • 做商城网站建设/百度seo排名曝光行者seo
  • 台州 做网站/谷歌搜索关键词排名
  • 网站建设和维护视频/公司网站搭建
  • 高级网站建设/又有什么新病毒出现了
  • 开发公司缺少成本发票/班级优化大师官网登录
  • 服装网站开发方案swot/seo长尾关键词
  • 湛江市建设局官网站/广东seo价格是多少钱
  • 手机网站制作吧/武汉大学人民医院院长
  • 网站下面的公安备案怎么做/竞价排名推广
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 微博类别信息爬取
  • golang语法-----变量、常量
  • uniapp打包成 apk
  • docker-compose 配置启动2个MongoDB
  • 46. 携带研究材料(01背包二维数组)
  • 认识下计算机视觉中的人脸识别