oauth

微信公众号本地开发流程

我只是一个虾纸丫 提交于 2020-07-29 06:25:50
1.建立测试号 直接打开链接,微信扫码登录即可测试号管理页面 https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index ,如下图所示 2.在测试号中的【网 页授权 获取用户基本信息】中,设置回调地址IP( localhost,127.0.0.1均不能使用,请使用局域网IP或域名,测试 号回调地址支持域名和ip,正式公众号回调地址只支持域名。 ) 3.下载微信开发者工具,选择公众号网页开发 4.填写要测试的地址,修改 rediect_uri 回调地址, 访问腾讯服务器url规则如下: https://open.weixin.qq.com/connect/oauth2/authorize?appid= 你当前测试号的 appid &redirect_uri= 你的接口路径 ( 记得 uri 码 ) &response_type=code&scope=snsapi_userinfo#wechat_redirect 5.访问以上地址的话,微信服务器会转发到另一个地址,地址中包含code,可以通过code获取到用户的openId(openId是微信用户唯一凭证) 例如:http://www.baidu.com/spic&code

基于 abp vNext 和 .NET Core 开发博客项目

不羁岁月 提交于 2020-07-29 05:46:16
系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 基于 abp vNext 和 .NET Core 开发博客项目 - 完善与美化,Swagger登场 基于 abp vNext 和 .NET Core 开发博客项目 - 数据访问和代码优先 基于 abp vNext 和 .NET Core 开发博客项目 - 自定义仓储之增删改查 基于 abp vNext 和 .NET Core 开发博客项目 - 统一规范API,包装返回模型 基于 abp vNext 和 .NET Core 开发博客项目 - 再说Swagger,分组、描述、小绿锁 基于 abp vNext 和 .NET Core 开发博客项目 - 接入GitHub,用JWT保护你的API 基于 abp vNext 和 .NET Core 开发博客项目 - 异常处理和日志记录 基于 abp vNext 和 .NET Core 开发博客项目 - 使用Redis缓存数据 基于 abp vNext 和 .NET Core 开发博客项目 - 集成Hangfire实现定时任务处理 基于 abp vNext 和 .NET Core 开发博客项目 - 用AutoMapper搞定对象映射 基于 abp

微服务架构的前世今生(六):微服务架构带来的问题

你。 提交于 2020-07-29 05:32:02
上次讲了微服务的前世今生(五):CAP 原则与 BASE 理论,这次我们再说微服务架构的前世今生(六):微服务架构带来的问题。 一、客户端如何访问服务? 传统的开发方式,所有的服务都是本地的,客户端可以直接调用,现在按功能拆分成独立的服务,客户端如何访问? 后台有 N 个服务,前台就需要管理 N 个服务,一个服务下线/更新/升级,前台就要重新部署,这明显不符合我们拆分的理念,另外,N 个服务的调用也是一个不小的网络开销。还有一般微服务在系统内部,通常是无状态的,用户登录信息和权限管理最好有一个统一的地方维护管理(OAuth2)。 所以,一般在后台 N 个服务和客户端之间一般会一个代理(API Gateway),作用如下: - 提供统一服务入口,聚合接口使得服务对调用者透明,客户端与后端的耦合度降低 - 聚合后台服务,节省流量,提高性能,提升用户体验 - 提供安全、流控、过滤、缓存、计费、监控等 API 管理功能 二、服务之间如何通信? 因为服务都是独立部署的,所以通信也就成了问题,不过好在业界已经有很多成熟的解决方案,比如: **同步通信:** - REST(JAX-RS,Spring Boot) - RPC(Dubbo,Thrift) **异步通信:** - RabbitMQ,Kafka 三、这么多服务如何查找? 在微服务架构中,为了高可用,普遍采用集群方式构建服务

Spring Boot+Vue前后端分离微信公众号网页授权解决方案

一笑奈何 提交于 2020-07-28 11:39:52
一、引言 全网最全的前后端分离微信 网页授权 解决方案。如果有更好的优化方案,欢迎多多交流 二、网页授权的步骤 1 第一步:用户同意授权,获取code 2 第二步:通过code换取网页授权access_token 3 第三步:刷新access_token(如果需要) 4 第四步:拉取用户信息(需scope为 snsapi_userinfo) 5 附:检验授权凭证(access_token)是否有效 注意 :这里的access_token属于网页授权access_token,而非普通授权的access_token,官方给出的解释如下: 关于网页授权access_token和普通access_token的区别 1、微信网页授权是通过OAuth2.0机制实现的,在用户授权给公众号后,公众号可以获取到一个网页授权特有的接口调用凭证(网页授权access_token),通过网页授权access_token可以进行授权后接口调用,如获取用户基本信息; 2、其他微信接口,需要通过基础支持中的“获取access_token”接口来获取到的普通access_token调用。 但是没有讲得很明白。其实两者的区别就是: 第一,网页授权access_token只要用户允许后就可以获取用户信息,可以不关注公众号,而普通access_token没有关注公众号,获取用户信息为空; 第二

spring Oauth 通过token 得到用户信息

妖精的绣舞 提交于 2020-07-28 07:49:56
package org.springframework.security.oauth.samples; import org.springframework.security.jwt.Jwt; import org.springframework.security.jwt.JwtHelper; public class M { public static void main(String[] args) { String token = "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IlN3REpYam4yUzJ6VjQzNWZmcEhhN0d4SFdISGFMZFFwMmR4VitmdzduSjA9In0.eyJleHAiOjE1OTI0NDE4MTYsInVzZXJfbmFtZSI6InVzZXIxIiwiYXV0aG9yaXRpZXMiOlsiUk9MRV9VU0VSIl0sImp0aSI6IjcxN2MwZDdmLWEzMDMtNDMxZC1hN2ZkLTRhZjhhNjhhYmU3YSIsImNsaWVudF9pZCI6ImMiLCJzY29wZSI6WyJtZXNzYWdlLnJlYWQiLCJtZXNzYWdlLndyaXRlIl19.fCpQrRVErzI0ppHf7fHyzmh8BDyeIHjJvsLL

微信公众号本地开发流程

孤街醉人 提交于 2020-07-28 04:57:46
1.建立测试号 直接打开链接,微信扫码登录即可测试号管理页面 https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index ,如下图所示 2.在测试号中的【网 页授权 获取用户基本信息】中,设置回调地址IP( localhost,127.0.0.1均不能使用,请使用局域网IP或域名,测试 号回调地址支持域名和ip,正式公众号回调地址只支持域名。 ) 3.下载微信开发者工具,选择公众号网页开发 4.填写要测试的地址,修改 rediect_uri 回调地址, 访问腾讯服务器url规则如下: https://open.weixin.qq.com/connect/oauth2/authorize?appid= 你当前测试号的 appid &redirect_uri= 你的接口路径 ( 记得 uri 码 ) &response_type=code&scope=snsapi_userinfo#wechat_redirect 5.访问以上地址的话,微信服务器会转发到另一个地址,地址中包含code,可以通过code获取到用户的openId(openId是微信用户唯一凭证) 例如:http://www.baidu.com/spic&code

博客园开放API如何使用

寵の児 提交于 2020-07-27 23:19:14
业务背景: 我通过weblogic这个Java爬虫框架是能够爬取得到博客园的大多数数据,但后来得知博客园有自己的开放API,通过这个开放API可以做一些事情,比方说实现一个关于博客园文章的小程序阅读、或者想学习go、node.js、flutter或uniapp用其实现一个CMS应用。 一、API KEY 申请 申请地址: https://oauth.cnblogs.com/ 二、申请成功后,会发一个邮件给你,里面有ClientId和ClientSecret 三、访问博客园OpenAPI文档 地址为: https://api.cnblogs.com/Help 四、验证请求一下 如上图是我做了一层封装。 主要封装了请求体中的clien_id、client_secret、grant_type等。 基本上拿到了token,将其放到请求头中,接下来博客园开放接口都能使用(注意,是开放接口,没有开放的接口,换言之就是接口文档上没有了,就不能使用) 来源: oschina 链接: https://my.oschina.net/u/4257773/blog/4304600

FastAPI css 异常.

心不动则不痛 提交于 2020-07-27 22:45:14
openapi swagger CDN 文件故障 # pip install aiofiles from fastapi import FastAPI from fastapi.openapi.docs import ( get_redoc_html, get_swagger_ui_html, get_swagger_ui_oauth2_redirect_html, ) from fastapi.staticfiles import StaticFiles from fastapi import APIRouter router = APIRouter() docs_router = router from hello import app # app = FastAPI(docs_url=None, redoc_url=None) @router.get("/docs", include_in_schema=False) async def custom_swagger_ui_html(): return get_swagger_ui_html( openapi_url=app.openapi_url, title=app.title + " - Swagger UI", oauth2_redirect_url=app.swagger_ui_oauth2_redirect_url

真的简单,文本文件逐行处理–用java8 Stream流的方式

|▌冷眼眸甩不掉的悲伤 提交于 2020-07-27 22:43:10
本文中为大家介绍使用java8 Stream API逐行读取文件,以及根据某些条件过滤文件内容 1. Java 8逐行读取文件 在此示例中,我将按行读取文件内容并在控制台打印输出。 Path filePath = Paths.get("c:/temp", "data.txt"); //try-with-resources语法,不用手动的编码关闭流 try (Stream<String> lines = Files.lines( filePath )) { lines.forEach(System.out::println); } catch (IOException e) { e.printStackTrace();//只是测试用例,生产环境下不要这样做异常处理 } 上面的程序输出将在控制台中逐行打印文件的内容。 Never store password except in mind. 2.Java 8读取文件–过滤行 在此示例中,我们将文件内容读取为Stream。然后,我们将过滤其中包含单词"password"的所有行。 Path filePath = Paths.get("c:/temp", "data.txt"); try (Stream<String> lines = Files.lines(filePath)){ List<String> filteredLines =

源码分析

这一生的挚爱 提交于 2020-07-27 22:30:05
说明 本文内容全部基于 Spring Security OAuth2(2.3.5.RELEASE) . OAuth2.0 有四种授权模式, 本文会以 密码模式 来举例讲解源码. 阅读前, 需要对 OAuth2.0 的相关概念有所了解. 最好有 Spring Security OAuth 框架的使用经验 下面是前面写的 OAuth2.0 相关文章 结合第三方登录案例理解 OAuth2.0 授权码方式 spring security oauth2 实战(仿微博第三方登录) - 工程搭建及登陆流程 正文 前置知识 @RequestMapping(value = "/oauth/token", method=RequestMethod.POST) public ResponseEntity<OAuth2AccessToken> postAccessToken( Principal principal, @RequestParam Map<String, String> parameters) throws HttpRequestMethodNotSupportedException { // TODO } 获取 token 的默认请求路径是 /oauth/token 获取 token 的入口类是 TokenEndpoint 获取 token 的接口需要接收两个参数 Principal