asp.ner core 5.0 Grpc HttpApi 和jwt的集成 和跨域【https双向认证】

本文介绍了如何在ASP.NET Core 5.0中实现gRPC、HTTP API与JWT的集成,以及HTTPS双向认证。通过修改protobuf文件、引入JWT相关包、创建token验证方法、配置跨域策略,实现了与Go风格一致的认证流程。同时,客户端调用HTTPS服务时需注意协议设置。提供了示例代码和GitHub仓库链接。
摘要由CSDN通过智能技术生成

书接上文 Go Grpc Jwt身份认证和Gateway集成以及HTTPS双向认证, 那么它在asp.net core 里面怎么实现了, 前面asp.ner core 5.0 Grpc双向认证 和 restful api包装 外加swagger启用【VSCode创建】已经完成了大部分, 我们只要引入jwt 和跨域就了, 网上很多文章 都是用IdentityServer4【个人实际生产中没有使用过, 感觉比较中】。本文保持和go一至的风格,增加一个login方法

1.修改grpcserver\Protos\greet.proto 文件如下【客户端的文件不需要option部分】:

syntax = "proto3";

import "google/api/annotations.proto";
option csharp_namespace = "grpcserver";

package greet;

// The greeting service definition.
service Greeter {
  rpc Login (LoginRequest) returns (LoginReply) {
    option (google.api.http) = {
      post: "/v1/greeter/login"
      body: "*"
  };
 
  }
  rpc SayHello (HelloRequest) returns (HelloReply) {
    option (google.api.http) = {
      get: "/v1/greeter/{name}"
    };
  }
}

// The request message containing the user's name.
message HelloRequest {
  string name = 1;
}

// The response message containing the greetings.
message HelloReply {
  string message = 1;
}

message LoginRequest{
  string username=1;
  string password=2;
}
message LoginReply{
  string status=1;
  string token=2;
}

客户端grpcclient\Protos\greet.proto 如下:

syntax = "proto3";

option csharp_namespace = "grpcserver";

package greet;

// The greeting service definition.
service Greeter {
    rpc Login (LoginRequest) returns (LoginReply);
  rpc SayHello (HelloRequest) returns (HelloReply);
}

// The request message containing the user's name.
message HelloRequest {
  string name = 1;
}

// The response message containing the greetings.
message HelloReply {
  string message = 1;
}

message LoginRequest{
  string username=1;
  string password=2;
}
message LoginReply{
  string status=1;
  string token=2;
}

2.要使用jwt 需要增加相应的包Microsoft.AspNetCore.Authentication.JwtBearer,和go相同, 我们同样创建一个 创建token 和通过token 获取用户名的方法, 整个grpcserver\Services\GreeterService.cs如下:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值