nest-集成redis实现单点登录

本文将介绍如何在NestJS应用中集成Redis并利用其实现单点登录功能。通过安装nestjs-redis和ioredis库,配置Redis连接,封装操作方法,并在特定模块中注入服务,实现JWT令牌的存储和验证,从而达到单点登录的逻辑。
摘要由CSDN通过智能技术生成

文章问题导向

在nest中如何集成redis?如何使用redis?
如何使用redis实现单点登录?

如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案


第一步:引入安装

yarn add nestjs-redis ioredis
nestjs-redis是连接与方法调用
ioredis是ts的类型注解

第二步:连接redis数据库

在全局app.module.ts中引入

import {
    APP_GUARD } from '@nestjs/core';
import {
    Module } from '@nestjs/common';
import {
    UserModule } from './modules/user/user.module';
import {
    AuthModule } from './modules/auth/auth.module';

import * as path from 'path';
import {
    ConfigModule, ConfigService } from 'nestjs-config';
import {
    TypeOrmModule } from '@nestjs/typeorm';
import {
    RedisModule } from 'nestjs-redis';

@Module({
   
  imports: [
    ConfigModule.load(path.resolve(__dirname, 'config', '**/!(*.d).{ts,js}')),
    UserModule,
    AuthModule,
    TypeOrmModule.forRootAsync({
   
      useFactory: (config: ConfigService) => config.get('database'),
      inject: [ConfigService],
    }),
    RedisModule.register({
     引入,你也可以使用config来配置
      port: 6379,
      host: '127.0.0.1',
      password: '',
      db: 0,
    })
})
export class AppModule {
    }

第三步:封装一些redis的操作方法

src -> common -> db -> redis-cache.service.ts

import {
    Injectable } from '@nestjs/common';
import {
    RedisService } from 'nestjs-redis';
import {
    Redis } from 'ioredis';

@Injectable()
export class CacheService {
   
  private client: Redis;  使用ioredis给clinet注解,这样才能获取多个方法的提示
  constructor(private redisService: RedisService) {
   }

  nest的生命周期函数,使用该service时,构建一个redis的clinet
  onModuleInit(): void 
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值