ServiceStack JWT设置

ServcieStack 自带的验证授权模块使用 sql server存储,所以我们第一步需要配置数据库的一些选项

container.Register<IDbConnectionFactory>(
new OrmLiteConnectionFactory(AppSettings.GetString("DBConn"), SqlServerDialect.Provider)); container.Register<IAuthRepository>(c =>
new OrmLiteAuthRepository(c.Resolve<IDbConnectionFactory>())
{
UseDistinctRoleTables = true
}); OrmLiteConfig.DialectProvider.GetStringConverter().UseUnicode = true; var authRepo = (OrmLiteAuthRepository)container.Resolve<IAuthRepository>();

这个数据库的角色表默认是不创建的,这里设置为单独的表

设置完毕之后,如果数据库没有配置,则可以代码中直接创建相应的表

authRepo.InitSchema();

创建之后,数据库会自动新建3个表

表创建之后,需要插入一些数据进行测试,也可以通过代码实现:

authRepo.CreateUserAuth(new UserAuth
{
DisplayName = "Credentials",
FirstName = "First",
LastName = "Last",
FullName = "First Last",
Email = "demis.bellot@gmail.com",
UserName = "julyluoTest1"
}, "test1"); authRepo.CreateUserAuth(new UserAuth
{
DisplayName = "Credentials",
FirstName = "First",
LastName = "Last",
FullName = "First Last",
UserName = "julyLuoTest2"
}, "test2");

最后设置 JWT的验证

Plugins.Add(new AuthFeature(() => new AuthUserSession(),
new IAuthProvider[] { new CredentialsAuthProvider(),
//Use JWT so sessions survive across AppDomain restarts, redeployments, etc
new JwtAuthProvider(AppSettings)
{
RequireSecureConnection = false
},
}));

客户端调用

1 获取bearToken

var authclient = new JsonServiceClient("http://localhost:62375");

var authResponse = authclient.Post(new Authenticate
{
provider = "credentials",
UserName = "julyluoTest1",
Password = "test1",
RememberMe = true,
}); var bearToken = authResponse.BearerToken;

2 通过bearToken获取需要验证的服务

var client = new JsonServiceClient("http://localhost:62375") { BearerToken = bearToken };

var ssResponse = client.Get(new SSAuthTest() { Name = "julyLUoTest" });

ServiceStack JWT 准备的更多相关文章

  1. 使用ServiceStack构建Web服务

    提到构建WebService服务,大家肯定第一个想到的是使用WCF,因为简单快捷嘛.首先要说明的是,本人对WCF不太了解,但是想快速建立一个WebService,于是看到了MSDN上的这一篇文章 Bu ...

  2. 看图理解JWT如何用于单点登录

    单点登录是我比较喜欢的一个技术解决方案,一方面他能够提高产品使用的便利性,另一方面他分离了各个应用都需要的登录服务,对性能以及工作量都有好处.自从上次研究过JWT如何应用于会话管理,加之以前的项目中也 ...

  3. .Net使用Redis详解之ServiceStack.Redis(七)

    序言 本篇从.Net如何接入Reis开始,直至.Net对Redis的各种操作,为了方便学习与做为文档的查看,我做一遍注释展现,其中会对list的阻塞功能和事务的运用做二个案例,进行记录学习. Redi ...

  4. JWT实现token-based会话管理

    上文<3种web会话管理的方式>介绍了3种会话管理的方式,其中token-based的方式有必要从实现层面了解一下.本文主要介绍这方面的内容.上文提到token-based的实现目前有一个 ...

  5. 用JWT来保护我们的ASP.NET Core Web API

    在上一篇博客中,自己动手写了一个Middleware来处理API的授权验证,现在就采用另外一种方式来处理这个授权验证的问题,毕竟现在也 有不少开源的东西可以用,今天用的是JWT. 什么是JWT呢?JW ...

  6. Laravel-lumen 配置JWT

    具体步骤参照: [ JWT & Lumen ] 第一步 在项目根目录 执行命令 composer require tymon/jwt-auth第二步 在 bootstrap/app.php 的 ...

  7. ServiceStack.Redis订阅发布服务的调用(Z)

      1.Redis订阅发布介绍Redis订阅发布是一种消息通信模式:发布者(publisher)发送消息,订阅者(Subscriber)接受消息.类似于设计模式中的观察者模式.发布者和订阅者之间使用频 ...

  8. .net core Jwt 添加

    Jwt 已经成为跨平台身份验证通用方案,如不了解请关注:https://jwt.io/. 为了和微软其他验证模块有个比较好的衔接,项目中采用了微软开发的jwt组件: System.IdentityMo ...

  9. 使用 ServiceStack 构建跨平台 Web 服务

    本文主要来自MSDN杂志<Building Cross-Platform Web Services with ServiceStack>,Windows Communication Fou ...

随机推荐

  1. Characters with Hash[签到题]

    目录 题目地址 题干 代码和解释 参考 题目地址 Characters with Hash(ACM-ICPC 2018 徐州赛区网络预赛) 题干 代码和解释 本题很好理解,通过一个seed,将输入的定 ...

  2. DICOM中的UID

    UID形式上是一个字符串,用于唯一标识DICOM标准中各种不同信息对象,如数据元素的值表示类型.DICOM抽象语法名.传输语法.应用程序上下文名字等,以保证在各个不同的国家.地区.生产商.设备使用时的 ...

  3. 如何查看android studio sdk路径配置

    file–>Other Settings–>Default Project Structure

  4. Spring Boot使用Html

    1.引入模板thymeleaf <dependency> <groupId>org.springframework.boot</groupId> <artif ...

  5. pdf怎么转换成word

    在线转换:https://app.xunjiepdf.com/pdf2word

  6. 关于最新版本的flutter在安卓打包的问题解决方法

    1.集成友盟push提示androidx版本号不一致,需在gradle文件中手动选择即可,如下 buildscript { repositories { google() jcenter() mave ...

  7. 带缓存的基于DateTimeFormatter的日期格式化工具类

    JAVA中的SimpleDateFormat是非线程安全的,所有在1.8的JDK版本里提供了线程安全的DateTimeFormatter类,由于是线程安全的,故我们可以将此类缓存起来多次利用提高效率. ...

  8. H5+js调用相机

    在机缘巧合之下,了解到用HTML5和javascript调用摄像头来实现拍照功能,今天就把大致原理写下来.页面布局很简单,就是一个input标签,两个HTML5元素video.canvas和一个but ...

  9. Selenium+Java完整框架搭建(2019完整版)

    一.WebDriver框架开发实战 1.框架的思想 (1)什么是框架? 框架是可以被应用开发者定制的应用骨架 (2)为什么要写框架? 提高脚本可维护性 提高编写脚本的速度 提高脚本可阅读性 (3)框架 ...

  10. Python 处理异常栈模块——traceback 模块

    异常捕捉 通常我们在项目中,针对异常的捕捉会使用 try + except,基本形式如下: try: # 主代码 except IndexError as e: # 索引异常时执行这里 logger. ...