面试题答案
一键面试设备码获取阶段
- 客户端向设备码服务器请求设备码:
- 关键信息:客户端需要向设备码服务器发送请求,此请求可能包含客户端标识(如client_id),用于表明自身身份,以便设备码服务器识别该客户端是否被允许发起此类请求。
- 设备码服务器生成并返回设备码相关信息:
- 关键信息:设备码服务器生成设备码(device_code)、用户码(user_code)、验证网址(verification_uri)和过期时间(expires_in)。设备码用于设备后续向授权服务器证明身份,用户码是供用户在验证网址上输入以完成授权的短码,验证网址是用户进行授权操作的网页地址,过期时间表示设备码和用户码的有效时长。
用户授权阶段
- 用户在验证网址输入用户码:
- 关键信息:用户在浏览器中访问验证网址,并输入接收到的用户码,此操作将请求发送到授权服务器。
- 授权服务器验证用户码并向用户请求授权:
- 关键信息:授权服务器验证用户码的有效性,确认无误后向用户展示授权页面,询问用户是否授权该客户端访问相关资源,展示的信息可能包括客户端的名称、请求访问的资源范围等。
- 用户授权后,授权服务器返回授权结果:
- 关键信息:若用户同意授权,授权服务器生成授权码(authorization_code)并返回给设备(通过设备码识别设备)。若用户拒绝授权,则返回相应的拒绝信息。
- 设备使用设备码和授权码向授权服务器请求访问令牌:
- 关键信息:设备将设备码和接收到的授权码发送给授权服务器,授权服务器验证设备码和授权码的有效性,验证通过后,生成访问令牌(access_token)、刷新令牌(refresh_token,可选)等信息并返回给设备,设备使用访问令牌即可访问受保护资源。