APP下载

基于令牌认证方案的改进研究与实践

2021-04-18胡献宇

软件工程 2021年4期

摘  要:就前后端分离的软件开发模式而言,保护后端数据接口不被非法调用是十分重要的。令牌作为获取保护资源的凭证,需要提供过期时间,否则认证功能就失去了意义。针对活跃用户,需要在有效时间内提供自动登录功能,可以提升使用体验。本文研究了OAuth(Open Authorization,一种开放的授权标准)的认证机制,并在ASP.NET Web API框架基础上,实现身份认证方案,当访问令牌过期后,增加令牌刷新机制,既能够改善用户体验,也能够有效保护数据接口。该方案具有通用性,适用于前后端分离的软件开发。通过测试,表明了该方案具有有效性和可行性。

关键词:OAuth;身份验证和授权;前后端分离;刷新

中图分类号:TP311.11     文献标识码:A

文章编号:2096-1472(2021)-04-34-05

Abstract: For software development model that separates front and back ends, it is very important to protect back-end data interface from being illegally invoked. The token, as a voucher for obtaining protected resources, needs to provide an expiration time, otherwise authentication function will lose its meaning. For active users, automatic login function needs to be provided within valid time to improve user experience. This paper proposes to implement an identity authentication scheme based on the ASP.NET Web API framework after studying an authentication mechanism of OAuth (Open Authorization, an open authorization standard). When the access token expires, token refresh mechanism is added, which can not only improve user experience, but also effectively protect data interfaces. The proposed scheme is versatile and suitable for software development with separation of front and back ends. Tests show its effectiveness and feasibility.

Keywords: OAuth; authentication and authorization; separation of front and back ends; refresh

1   引言(Introduction)

随着Web应用的快速发展,前后端分离的开发方式成为主流趋势。图1是一种主流的前后端分离的交互模型,使用前按需设计数据接口,后端(主要是指服务器端)可以为前端(主要是指PC端平台、APP及各类小程序)提供HTTP(Hyper Text Transfer Protocol, 超文本传输协议)服务,而不需要关注业务的详细展示[1]。此外,前端主要负责接收和组织展示后端传过来的数据,根据具体的业务进行页面逻辑的设计。这种前后端交互模型结构简洁,方便前后端开发者关注自己的业务,降低了前后端的耦合性,可成功解耦,为后续开发工作打下了坚实的基础。

然而,使用前后端分离的软件开发模式,需要关注后端数据接口的安全性,保护接口不被非法调用。针对这种情况,本文实现了基于OAuth(Open Authorization,一种开放的授权标准)2.0的身份验证和授权方案,一方面能够保护接口的安全性;另一方面,能够在令牌过期之后实现刷新机制,改善用户体验,并通过Postman工具进行完整测试,表明方案的可行性。……

登录APP查看全文