2020 年,世界很魔幻,我也经历了太多不同的角色。这一年刷新观念的频率极高,感觉自己在飞速成长。
使用 Egg 快速开发 OAuth 2.0 授权服务
前言
随着移动互联网的发展,授权协议从 OAuth 1.0 过渡到了 OAuth 2.0,新版授权协议的草案早在 2011 年就已公布,现在已经广泛应用于移动客户端的登录和网站、客户端的第三方授权。相比于会话(session),OAuth 2.0 不关注用户状态,主要用于无状态的 API 和非浏览器的移动客户端。
本文通过实例介绍如何使用 Egg.js 框架和相关插件 egg-oauth2-server,快速开发 OAuth 2.0 协议的授权服务。
实战:Node后端,从session迁移到OAuth2
最近一周,在开发 Appetizer 的后端新业务的过程中,需要提供几个开放 API 供自己团队的客户端调用,未来也许会让第三方团队进行调用。Appetizer 后端的 API 层我取名叫 eevee,口袋妖怪里的伊布的英文名,承载了整个账号系统、账号业务页面以及一些账号和图片服务的 API,使用 Express 4.0 和 MongoDB 实现的业务逻辑不是特别复杂的后端应用,主要的接入应用是能够记录 session 的客户端浏览器。
再见2016,你好2017
感官上的时间流逝速度同新事物的接触成反比,回顾一下2016,做的事情不多也不少。
首先翻看一下2016年初立的一些flag:
- [√] MacBook Pro,台式机全部买起。
- 补番列表,电影列表,书列表上的尽可能看掉。(番看的越来越少,电影越来越多,后文细说)
- 多玩通关点游戏大作。(大概已经放弃单机了)
- 继续学日语。(随着看番的热情降低而降低)
- [√] 入坑B社的Gundam模型。(过年继续)
- [√] 出国旅个游。
- [√] 发现几个好吃的日料店。
- [√x] 学点产品设计。
- [√x] 接外包做枪手不适合长期干下去,朝着独立开发者发展。
- [√x] 有自己开发维护的项目产品
- [√x] 提高内功,JVM,Android全栈,网络等。
朝鲜半岛之行 其之壹
今年的八月十号到十三号,在回家前跟学校团一行十几人去了趟韩国首尔3天,作为交大软件学院的学生,和成均馆大学进行了院际交流活动。
这是我第一次踏足朝鲜半岛,因为是官方活动,行程只在首尔和首尔南边不远的水原活动,没能随意走动到韩国欠发达的地区旅行,只好在这个二战后依靠美利坚建立的国家最繁华的城市圈,窥视韩国的现状和韩国人的特点。
从adb获取Android设备的市场名和外观图片
全球一共有多少款Android设备呢?根据Google注册在案的数据,截止2016年8月5日,总计有12518款不同的Android设备型号,这里还没包括几年前中国山寨厂商Android设备。Android设备型号总量这个数字,每天都在增长。
接触过Android开发的人也许遇到,或者想到过,拿到一台Android设备,如何能够得到它在市场售卖时候的设备型号名称。
打开Android系统的“设置”->“关于手机”,可以看到设备的基础信息,其中有型号一栏。对于一部分手机,型号名和市场名是一致或者接近的,但有相当一部分设备的型号名和市场叫法没有关联很小,甚至任何关系。例如华为Mate7在系统中的型号名是 HUAWEI MT7-CL00
,一般人很难联想到Mate7;三星同一款市场叫法的手机,在不同国家发行其模型名不一样,Galaxy Note4在中国发行的版本的型号名是 SM-N9108V
,笔者在第一次拿到这款设备的时候,如果不看包装盒,几乎无法从系统中获取到该手机的市面叫法。
笔者最近在开发Appetizer.io时遇到一个需求,需要根据adb能获取到的Android设备数据,得到设备的样例图片和市场名。这种类似的需求场景,在Android相关的开发中有可能碰到,笔者在此分享一下实现该需求的思路与方法。