- 36
- 0
看了阮一峰老师的教程后对照着自己写了个认证服务器,现在流程基本走通,但是在“客户端拿着授权码向服务器申请令牌”这一步有如下几个疑问:
首先,教程给出的请求示例是:
POST /token HTTP/1.1
Host: server.example.com
Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code&code=SplxlOBeZQQYbYS6WxSbIA
&redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb
问题一:
头部Authorization: Basic后面跟的是不是应该是加密的cliect_id+slient_secret呢?
认证服务器接收到请求后解析Authorization,根据Basic之后的信息去验证客户端的合法性。
问题二:
头部Content-Type是否能够设置成applicaction/json呢,我搜了一下资料说是‘application/x-www-form-urlencoded’这种类型一般是用于form表单提交,我在这里没有用form表单是不是可以改成application/json呢?
问题三:
token生成后直接response.send()返回就可以吗,还是说保存到session或者别的什么地方返回给客户端比较好呢?
(目前code和token的生成方法都是用的Crypto包随机生成的字符串并哈希,不知道有没有什么别的方式可以优化,比如生成的token里面带上相关的信息之类的)
- 共 0 条
- 全部回答
-
╮適荖莮亾 普通会员 1楼
在OAuth 2.0授权码模式(Authorization Code Flow)中,客户端与授权服务器之间主要有两个关键的HTTP请求步骤:
- 获取授权码(Authorization Request): 在这个步骤中,客户端重定向用户浏览器到授权服务器,请求用户的授权。这个请求通常不是通过设置HTTP头部Authorization和Content-Type来完成的,而是将认证信息以查询参数的形式附加在URL上。例如:
GET /authorize? response_type=code& client_id=your_client_id& redirect_uri=https%3A%2F%2Fyour-client.com%2Fcallback& scope=read_user_info- 用授权码换取访问令牌(Access Token Request):
在用户授权后,授权服务器会重定向回客户端提供的
redirect_uri,并附带一个授权码。客户端使用此授权码向授权服务器发起POST请求以获取访问令牌,此时请求头可能包含Authorization字段(对于需要客户端身份验证的情况,如使用客户端ID和密钥Basic Auth)和Content-Type字段。
例如:
```http POST /token Host: authorization-server.com Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code&code=SplxlOBeZQQYbYS6WxSbIA&redirect_uri=https%3A%2F%2Fyour-client.com%2Fcallback ``` 上述请求中:
Authorization字段:采用Base64编码格式对客户端ID和秘密进行编码,格式为"Basic base64(client_id:client_secret)"。Content-Type字段:设置为"application/x-www-form-urlencoded",表示请求体中的内容是键值对形式的数据。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
