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. Python开发:OpenCV版本差异所引发的cv2.findContours()函数传参问题

    一.问题如下: cv2.findContours()这个方法是用来找出轮廓值的: # cv2.findContours找出轮廓值,cv2.RETR_EXTERNAL表示图像的外轮廓 binary, c ...

  2. 经典算法(四) 数组相关 & 螺旋矩阵 & 数字大小写转换 & 字符串相关

    一.求所有子数组的和的最大值 public static void main(String[] args) { int[] a = { 1, -2, 3, 10, -4, 7, 2, -5 }; Fi ...

  3. Leetcode: 43. 接雨水

    题目描述: 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水. 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情 ...

  4. Redis中删除过期Key的三种策略

    转载自:http://blog.csdn.net/a_bang/article/details/52986935?locationNum=9&fps=1 项目中有个接口要频繁调用查询数据库中的 ...

  5. 解决vue项目路由出现message: "Navigating to current location (XXX) is not allowed"的问题(点击多次跳转)

    如果网页跳转用的方法传参去跳转: (点击多次链接会出现错误) <a class="" href="javascript:void(0);" @click= ...

  6. arcpy地理处理工具案例教程-生成范围-自动画框-深度学习样本提取-人工智能-AI

    arcpy地理处理工具案例教程-生成范围-自动画框-深度学习样本提取-人工智能-AI 商务合作,科技咨询,版权转让:向日葵,135-4855_4328,xiexiaokui#qq.com 目的:对面. ...

  7. layui中select实现二级关联

    目的:实现店铺和仓库的二级关联,通过选择不同的店铺,来显示这个门店对应的库位信息. 1. 在select选项上添加lay-filter选择器. <div class="layui-in ...

  8. window操作系统分区

    注意GPT分区模式不能创建扩展分区和逻辑分区

  9. JAVA 创建也项目平级文件

    String url = System.getProperty("user.dir") +"/logs/test.txt" File file = new Fi ...

  10. 【PHP】使用phpoffice/phpexcel导入导出数据

    本例以thinkphp5.1为例 包地址: https://packagist.org/packages/phpoffice/phpexcel 使用: composer require phpoffi ...