草庐IT

十分钟搞懂手机号码一键登录

手机号码一键登录是最近两三年出现的一种新型应用登录方式,比之前常用的短信验证码登录又方便了不少。登陆时,应用首先向用户展示带有本机号码掩码的授权登录页面,用户点击“同意授权”的按钮之后,应用即可获取到完整的本机号码,从而完成用户的登录认证。在这个过程中,应用只要确认登录用的手机号码是在绑定了此号码的手机上发起的即可认证成功,从这一点来看,它和短信验证码登录并无本质区别,都是一种设备认证登录方式。这篇文章就来捋一下其中的技术门道。这几年为了保护用户的隐私安全,Android和iOS系统都限制了应用获取本机号码的能力,即使通过某些技术手段获取到了本机号码,这个号码还可能是被篡改的,所以应用直接读取

十分钟搞懂手机号码一键登录

手机号码一键登录是最近两三年出现的一种新型应用登录方式,比之前常用的短信验证码登录又方便了不少。登陆时,应用首先向用户展示带有本机号码掩码的授权登录页面,用户点击“同意授权”的按钮之后,应用即可获取到完整的本机号码,从而完成用户的登录认证。在这个过程中,应用只要确认登录用的手机号码是在绑定了此号码的手机上发起的即可认证成功,从这一点来看,它和短信验证码登录并无本质区别,都是一种设备认证登录方式。这篇文章就来捋一下其中的技术门道。这几年为了保护用户的隐私安全,Android和iOS系统都限制了应用获取本机号码的能力,即使通过某些技术手段获取到了本机号码,这个号码还可能是被篡改的,所以应用直接读取

K3S +Helm+NFS最小化测试安装部署只需十分钟

作者:郝建伟k3s简介官方文档:k3s什么是k3sk3s是一个轻量级的Kubernetes发行版它针对边缘计算、物联网等场景进行了高度优化。k3s有以下增强功能:打包为单个二进制文件。使用基于sqlite3的轻量级存储后端作为默认存储机制。同时支持使用etcd3、MySQL和PostgreSQL作为存储机制。封装在简单的启动程序中,通过该启动程序处理很多复杂的TLS和选项。默认情况下是安全的,对轻量级环境有合理的默认值。添加了简单但功能强大的batteries-included功能,例如:本地存储提供程序,服务负载均衡器,Helmcontroller和TraefikIngresscontrol

K3S +Helm+NFS最小化测试安装部署只需十分钟

作者:郝建伟k3s简介官方文档:k3s什么是k3sk3s是一个轻量级的Kubernetes发行版它针对边缘计算、物联网等场景进行了高度优化。k3s有以下增强功能:打包为单个二进制文件。使用基于sqlite3的轻量级存储后端作为默认存储机制。同时支持使用etcd3、MySQL和PostgreSQL作为存储机制。封装在简单的启动程序中,通过该启动程序处理很多复杂的TLS和选项。默认情况下是安全的,对轻量级环境有合理的默认值。添加了简单但功能强大的batteries-included功能,例如:本地存储提供程序,服务负载均衡器,Helmcontroller和TraefikIngresscontrol

十分钟速成DevOps实践

摘要:以华为云软件开发平台DevCloud为例,十分钟简单体验下DevOps应用上云实践——H5经典小游戏上云。本文分享自华为云社区《《DevOps实践秘籍》十分钟速成DevOps实践》,作者:AppCloud小助手。DevOps是什么?DevOps是Development和Operations的组合词,简单点理解就是研发运维一体化的方法论,目的是通过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更快捷、频繁和可靠。实现这些理念的自动化平台,即为软件开发平台,包括从项目管理、代码开发、流水线、编译构建、部署、软件发布库等全流程软件开发服务,简而言之,你可以在平台上完成从

十分钟速成DevOps实践

摘要:以华为云软件开发平台DevCloud为例,十分钟简单体验下DevOps应用上云实践——H5经典小游戏上云。本文分享自华为云社区《《DevOps实践秘籍》十分钟速成DevOps实践》,作者:AppCloud小助手。DevOps是什么?DevOps是Development和Operations的组合词,简单点理解就是研发运维一体化的方法论,目的是通过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更快捷、频繁和可靠。实现这些理念的自动化平台,即为软件开发平台,包括从项目管理、代码开发、流水线、编译构建、部署、软件发布库等全流程软件开发服务,简而言之,你可以在平台上完成从

c++标准库string的使用完美总结——十分详细,复习学习记忆都可以使用

std::string详解抛弃char*的字符串选用C++标准程序库中的string类。他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用=进行赋值操作,==进行比较,+做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。更新:使用count进行对string中某字符的统计:count(str.begin(),str.end(),chara)返回值可以使用int接收,包含在库函数algorithm中。标准模板库(STL)提供了一个std::string类,其是std::basi

c++标准库string的使用完美总结——十分详细,复习学习记忆都可以使用

std::string详解抛弃char*的字符串选用C++标准程序库中的string类。他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用=进行赋值操作,==进行比较,+做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。更新:使用count进行对string中某字符的统计:count(str.begin(),str.end(),chara)返回值可以使用int接收,包含在库函数algorithm中。标准模板库(STL)提供了一个std::string类,其是std::basi

十分钟学会Golang开发gRPC服务

gRPC是Google发起的一个开源RPC框架,使用HTTP/2传输协议,使用ProtocolBuffers编码协议,相比RESTful框架的程序性能提高不少,而且当前流行的编程语言基本都已经支持。Golang开发gRPC应用程序的套路也已经很清晰,这篇文章就来做一个简单的介绍,算是入门。1、安装protoc这个工具也称为proto编译器,可以用来生成各种开发语言使用proto协议的代码。下载地址:https://github.com/protocolbuffers/protobuf/releases一般下载最新版本就行,注意要符合自己当前的操作系统。解压后里边有个protoc.exe,拷贝到

十分钟学会Golang开发gRPC服务

gRPC是Google发起的一个开源RPC框架,使用HTTP/2传输协议,使用ProtocolBuffers编码协议,相比RESTful框架的程序性能提高不少,而且当前流行的编程语言基本都已经支持。Golang开发gRPC应用程序的套路也已经很清晰,这篇文章就来做一个简单的介绍,算是入门。1、安装protoc这个工具也称为proto编译器,可以用来生成各种开发语言使用proto协议的代码。下载地址:https://github.com/protocolbuffers/protobuf/releases一般下载最新版本就行,注意要符合自己当前的操作系统。解压后里边有个protoc.exe,拷贝到