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

一对一做的好的网站西安建设工程交易中心官网

一对一做的好的网站,西安建设工程交易中心官网,网页制作流程图模板,wordpress退出维护模式博主介绍#xff1a;✌专注于前后端领域开发的优质创作者、秉着互联网精神开源贡献精神#xff0c;答疑解惑、坚持优质作品共享。本人是掘金/腾讯云/阿里云等平台优质作者、擅长前后端项目开发和毕业项目实战#xff0c;深受全网粉丝喜爱与支持✌有需要可以联系作者我哦✌专注于前后端领域开发的优质创作者、秉着互联网精神开源贡献精神答疑解惑、坚持优质作品共享。本人是掘金/腾讯云/阿里云等平台优质作者、擅长前后端项目开发和毕业项目实战深受全网粉丝喜爱与支持✌有需要可以联系作者我哦 文末三连哦 什么是Token Store 在Web开发中Token Store 通常用于存储用户身份验证令牌Tokens例如 JSON Web Tokens (JWT) 或其他形式的令牌。这些令牌可以用于验证用户身份实现用户会话管理以及访问控制。 一种简单的Token Store示例使用Node.js和Express框架以及一个基于内存的Token存储方式 const express require(express); const jwt require(jsonwebtoken);const app express(); app.use(express.json());// In-memory Token Store const tokenStore {};// Secret key for JWT (replace with a strong, secret key in production) const secretKey your_secret_key;// Middleware to verify JWT function verifyToken(req, res, next) {const token req.headers.authorization;if (!token) {return res.status(403).json({ message: No token provided });}jwt.verify(token, secretKey, (err, decoded) {if (err) {return res.status(401).json({ message: Failed to authenticate token });}req.user decoded;next();}); }// Endpoint to generate and return a JWT app.post(/login, (req, res) {const { username, password } req.body;// Authenticate user (replace with your actual authentication logic)// For simplicity, assume any username and password combination is validconst user { username, role: user };// Generate a JWTconst token jwt.sign(user, secretKey, { expiresIn: 1h });// Store the token in memorytokenStore[token] user;res.json({ token }); });// Protected endpoint that requires a valid JWT for access app.get(/protected, verifyToken, (req, res) {res.json({ message: This is a protected endpoint, user: req.user }); });// Start the server const port 3000; app.listen(port, () {console.log(Server is running on http://localhost:${port}); });Spring Security 提供了几个常见的 TokenStore 实现包括内存中存储、JDBC 数据库存储和基于 JWTJSON Web Token的存储。下面将分别介绍这三种实现方式并提供基本的代码示例。 1. 内存中存储In-Memory  Configuration EnableAuthorizationServer public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter {Autowiredprivate AuthenticationManager authenticationManager;Beanpublic TokenStore inMemoryTokenStore() {return new InMemoryTokenStore();}Overridepublic void configure(ClientDetailsServiceConfigurer clients) throws Exception {clients.inMemory().withClient(client).secret({noop}secret) // 使用 {noop} 表示不加密.authorizedGrantTypes(password, authorization_code, refresh_token).scopes(read, write).accessTokenValiditySeconds(3600).refreshTokenValiditySeconds(86400);}Overridepublic void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {endpoints.tokenStore(inMemoryTokenStore()).authenticationManager(authenticationManager);} }2. JDBC 数据库存储 Configuration EnableAuthorizationServer public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter {Autowiredprivate AuthenticationManager authenticationManager;Autowiredprivate DataSource dataSource;Beanpublic TokenStore jdbcTokenStore() {return new JdbcTokenStore(dataSource);}Overridepublic void configure(ClientDetailsServiceConfigurer clients) throws Exception {clients.jdbc(dataSource);}Overridepublic void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {endpoints.tokenStore(jdbcTokenStore()).authenticationManager(authenticationManager);} }3. 基于 JWT 的存储 Configuration EnableAuthorizationServer public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter {Autowiredprivate AuthenticationManager authenticationManager;Value(${security.jwt.client-id})private String clientId;Value(${security.jwt.client-secret})private String clientSecret;Value(${security.jwt.grant-type})private String grantType;Value(${security.jwt.scope-read})private String scopeRead;Value(${security.jwt.scope-write})private String scopeWrite;Value(${security.jwt.resource-ids})private String resourceIds;Beanpublic TokenStore jwtTokenStore() {return new JwtTokenStore(jwtAccessTokenConverter());}Beanpublic JwtAccessTokenConverter jwtAccessTokenConverter() {JwtAccessTokenConverter converter new JwtAccessTokenConverter();converter.setSigningKey(secret);return converter;}Overridepublic void configure(ClientDetailsServiceConfigurer clients) throws Exception {clients.inMemory().withClient(clientId).secret({noop} clientSecret).authorizedGrantTypes(grantType).scopes(scopeRead, scopeWrite).resourceIds(resourceIds);}Overridepublic void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {endpoints.tokenStore(jwtTokenStore()).accessTokenConverter(jwtAccessTokenConverter()).authenticationManager(authenticationManager);} }小结 我们介绍了Spring Security中三种不同的Token Store实现方式。具体包括内存中存储、JDBC数据库存储和基于JWT的存储。每个实现方式都涉及到授权服务器的配置用于管理和验证令牌以及客户端详情的配置。 大家点赞、收藏、关注、评论啦谢谢三连哦
http://www.zqtcl.cn/news/507696/

相关文章:

  • 叫人做网站多少钱百度免费网站怎样建设
  • 本地南通网站建设新手编程入门先学什么
  • asp网站开发的背景与环境久久建筑网会员
  • 河北省住房建设厅官方网站个人计算机做服务器建网站
  • 上海自助建站费用页游网站
  • 浙江省住建厅网站沈阳网站建设专家
  • 基础建设文本网站施工企业在施工过程中发现设计文件和图纸有差错的应当
  • 做互联网交易网站的条件17网站一起做网店揭阳
  • 做公司网站合同asp.net sql server网站建设 pdf
  • 建筑兼职网站天津网站优化公司哪家好
  • 怎么做网站设计商城型网站开发网站建设
  • 建设网站目录帮别人做网站要投资吗
  • 网站meta 优化建议桥梁建设设计网站
  • 网站建设 甘肃wordpress rss去掉
  • 网站安全检测大连网龙建站优化推广
  • 人才网官方网站公众号排名优化软件
  • 淘宝返利网站建设软件开发哪里学好
  • 烟台网站制作公司如何注册国外网站
  • discuz企业网站网站可以做音频线吗
  • 怎样制作网站教程哪家好制作网页的的网站
  • 网站没有织梦后台无锡seo公司网站
  • 哈尔滨住房和城乡建设厅网站公司网站建设 费用入账
  • 网站图片缩略图t恤图案设计网站
  • 对招聘网站页面设计做建议网站流量 转化率
  • 怎么样做网站注册量郴州市北湖区
  • 山东企业展厅设计公司济南网站建设优化公司
  • 什么网站免费做游戏工艺品外贸订单网
  • 免费推广网站制作网站设计的技术有
  • 深圳电商网站建设高校学风建设专栏网站
  • 品牌网站建设 2蝌蚪小三网合一的网站怎么做