Go 语言项目开发实战
孔令飞
腾讯云资深工程师,前Red Hat、联想云工程师
新⼈⾸单¥69.9
3337 人已学习
课程目录
已更新 29 讲 / 共 54 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 从 0 开始搭建一个企业级 Go 应用
免费
课前必学 (3讲)
01 | IAM系统概述:我们要实现什么样的 Go 项目?
02 | 环境准备:如何安装和配置一个基本的 Go 开发环境?
03 | 项目部署:如何快速部署 IAM 系统?
实战第 1 站:规范设计 (8讲)
04 | 规范设计(上):项目开发杂乱无章,如何规范?
05 | 规范设计(下):commit 信息风格迥异、难以阅读,如何规范?
06 | 目录结构设计:如何组织一个可维护、可扩展的代码目录?
07 | 工作流设计:如何设计合理的多人开发模式?
08 | 研发流程设计(上):如何设计 Go 项目的开发流程?
09 | 研发流程设计(下):如何管理应用的生命周期?
10 | 设计方法:怎么写出优雅的 Go 项目?
11 | 设计模式:Go常用设计模式概述
实战第2站:基础功能设计或开发 (12讲)
12 | API 风格(上):如何设计RESTful API?
13 | API 风格(下):RPC API介绍
14 | 项目管理:如何编写高质量的Makefile?
15 | 研发流程实战:IAM项目是如何进行研发流程管理的?
16 | 代码检查:如何进行静态代码检查?
17 | API 文档:如何生成 Swagger API 文档 ?
18 | 错误处理(上):如何设计一套科学的错误码?
19 | 错误处理(下):如何设计错误包?
20 | 日志处理(上):如何设计日志包并记录日志?
21 | 日志处理(下):手把手教你从 0 编写一个日志包
22 | 应用构建三剑客:Pflag、Viper、Cobra 核心功能介绍
23 | 应用构建实战:如何构建一个优秀的企业应用框架?
实战第3站:服务开发 (3讲)
24 | Web 服务:Web 服务核心功能有哪些,如何实现?
25 | 认证机制:应用程序如何进行访问认证?
26 | IAM项目是如何设计和实现访问认证功能的?
特别放送 (2讲)
特别放送 | 给你一份清晰、可直接套用的Go编码规范
特别放送 | 给你一份Go项目中最常用的Makefile核心语法
Go 语言项目开发实战
15
15
1.0x
00:00/00:00
登录|注册

25 | 认证机制:应用程序如何进行访问认证?

你好,我是孔令飞,今天我们来聊聊如何进行访问认证。
保证应用的安全是软件开发的最基本要求,我们有多种途径来保障应用的安全,例如网络隔离、设置防火墙、设置 IP 黑白名单等。不过在我看来,这些更多是从运维角度来解决应用的安全问题。作为开发者,我们也可以从软件层面来保证应用的安全,这可以通过认证来实现。
这一讲,我以 HTTP 服务为例,来给你介绍下当前常见的四种认证方法:Basic、Digest、OAuth、Bearer。还有很多基于这四种方法的变种,这里就不再介绍了。
IAM 项目使用了 Basic、Bearer 两种认证方法。这一讲,我先来介绍下这四种认证方法,下一讲,我会给你介绍下 IAM 项目是如何设计和实现访问认证功能的。

认证和授权有什么区别?

在介绍四种基本的认证方法之前,我想先带你区分下认证和授权,这是很多开发者都容易搞混的两个概念。
认证(Authentication,英文缩写 authn):用来验证某个用户是否具有访问系统的权限。如果认证通过,该用户就可以访问系统,从而创建、修改、删除、查询平台支持的资源。
授权(Authorization,英文缩写 authz):用来验证某个用户是否具有访问某个资源的权限,如果授权通过,该用户就能对资源做增删改查等操作。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
该试读文章来自付费专栏《Go 语言项目开发实战》,如需阅读全部文章,
请订阅文章所属专栏新⼈⾸单¥69.9
立即订阅
登录 后留言

精选留言(4)

  • pedro
    问题1:JWT中可新增一个 valid 字段用于表示 token 是否有效,注销后则无效。
    问题2:token还是存储在cookie中比较好,可由服务端保存,localstorage在纯前端,中很容易泄露。
    2021-07-22
    1
  • 如来神掌
    方案挺多,如下:
    1、最简单的,客户端直接删除token,但有弊端
    2、token计入数据库,登录后对比,注销时删除
    3、注销后记录到黑名单,下次登录后清楚黑名单
    4、直接记到Redis,注销后删除,登录后存入,类似数据库
    ……

    作者回复: 老哥回答的很赞。主要是删除token在客户端和服务端的缓存

    2021-07-22
  • lark
    在jwt的payload里加一个随机数字段,过期或者失效就重新生成一个随机数。

    作者回复: 删除客户端的缓存就可以了

    2021-07-22
  • 8.13.3.27.30
    根据文中认证和授权的解释、我理解Oauth应该属于授权?而不是认证
    2021-07-22
收起评论
4
返回
顶部