- Building Microservices with Go
- Nic Jackson
- 209字
- 2021-07-15 17:28:12
Authorization - string
Authorization is one of the most commonly used request headers, even if you have a public read only API I advise you to ask the user to authorize their requests. By requesting that the user authorizes a request, you have the capability to perform operations such as user level logging and rate limiting. Quite often you may see authorization conducted with a custom request header such as "X-API-Authorization". I would recommend you do not use this approach as the standard Authorization header as specified by the W3C RFC 2616 (https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html) has all the capability we need. Many companies such as Twitter and PayPal use this header to authenticate requests let's. Let's look at a simple example from Twitter's developer documentation to see how this can be implemented:
Authorization:
OAuth oauth_consumer_key="xvz1evFS4wEEPTGEFPHBog",
oauth_nonce="kYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg",
oauth_signature="tnnArxj06cWHq44gCs1OSKk%2FjLY%3D",
oauth_signature_method="HMAC-SHA1",
oauth_timestamp="1318622958",
oauth_token="370773112-GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb",
oauth_version="1.0"
The header is in the form of [Authorization method] [Comma separated URL encoded values]. This clearly informs the server that the authorization type is OAuth and the various components of this authorization follow this in a comma delaminated format. By following this standard approach you can enable your consumers to use a third-party library that implements this standard and thus save them the work of having to build a bespoke implementation.
- SPSS數據挖掘與案例分析應用實踐
- 深入核心的敏捷開發:ThoughtWorks五大關鍵實踐
- Unreal Engine 4 Shaders and Effects Cookbook
- Yii Project Blueprints
- Creating Mobile Apps with jQuery Mobile(Second Edition)
- Python:Deeper Insights into Machine Learning
- Flink技術內幕:架構設計與實現原理
- 計算語言學導論
- SQL Server 2012 數據庫應用教程(第3版)
- Modular Programming with JavaScript
- Learning D3.js 5 Mapping(Second Edition)
- Instant AppFog
- C#教程
- Instant JRebel
- 面向對象程序設計教程(C#版)