小程序 身份认证服务器,如何实现微信小程序与.net core应用服务端的无状态身份验证...

随着.net core2的发布,越来越多人使用.net core2开发各种应用服务端,下面我就结合自己最近开发的一款小程序,给大家分享下,怎么使用小程序登录后,小程序与服务端交互的权限控制。

服务端的登录设计如下:

net core 服务端,我们使用 JWT 搭建分布式无状态身份验证系统

1.首先在startup.cs中

ConfigureServices(IServiceCollection services)

中添加如下代码

8f2887e1ff83?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

教你如何实现微信小程序与.net core应用服务端的无状态身份验证

8f2887e1ff83?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

教你如何实现微信小程序与.net core应用服务端的无状态身份验证

上述代码中有一个 自定的 WabApiAuthroizeAttribute,具体实现代码如下:

8f2887e1ff83?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

教你如何实现微信小程序与.net core应用服务端的无状态身份验证

2.在 Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)中添加

8f2887e1ff83?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

教你如何实现微信小程序与.net core应用服务端的无状态身份验证

3.我们要创建三个关于JWT的类

8f2887e1ff83?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

教你如何实现微信小程序与.net core应用服务端的无状态身份验证

TokenEntity实体类,用来生成token实体,里面大家可在添加属性

8f2887e1ff83?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

教你如何实现微信小程序与.net core应用服务端的无状态身份验证

token提供属性

8f2887e1ff83?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

教你如何实现微信小程序与.net core应用服务端的无状态身份验证

8f2887e1ff83?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

教你如何实现微信小程序与.net core应用服务端的无状态身份验证

8f2887e1ff83?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

教你如何实现微信小程序与.net core应用服务端的无状态身份验证

8f2887e1ff83?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

教你如何实现微信小程序与.net core应用服务端的无状态身份验证

里面有一些登录相关代码,大家可结合自己的程序进行修改

这样我们就完成了 JWT的三个相关类的设计。

以下就是我们的具体登录验证:

添加一个登录webapi

8f2887e1ff83?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

教你如何实现微信小程序与.net core应用服务端的无状态身份验证

登录后返回一个 token实例,里面将包含我们之前创建的各个属性,重点是access_token

返回的access_token,将在微信小程序中提交时附上,就可实现无状态身份验证。

那个其他webapi如何判断身份验证呢?很简单,只要在每个webapi的类或属性上添加此属性即可,超级简单吧。

[WebApiAuthorize]

比如我们有一个获取小程序首页滚动图片链接的action:

8f2887e1ff83?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

教你如何实现微信小程序与.net core应用服务端的无状态身份验证

如此这般即可

下面我们将讲讲,小程序如何登录,如何身份认证

首先小程序端的登录设计如下:

8f2887e1ff83?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

教你如何实现微信小程序与.net core应用服务端的无状态身份验证

小程序登录界面

上面我们暂且不讲,使用微信登录的事,只讲小程序如何使用我们应用的账号密码进行登录:

小程序登录代码如下:

在小程序中,我们首先对小程序的网络请求wx.request进行封装

8f2887e1ff83?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

教你如何实现微信小程序与.net core应用服务端的无状态身份验证

8f2887e1ff83?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

教你如何实现微信小程序与.net core应用服务端的无状态身份验证

那使用此类进行登录后,我们可以获得返回的access_token,并将access_token保存起来,下次,请求其他动作时,将会自动在网络头header 附上token,就可使用身份验证,非常简单。

以上就是我所做的一个实例,因为代码较多,有时没有写的很具体,如果大家还疑问,可以直接咨询我。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值