access_token 肯定是要与 user_id 绑到一起,按照 OAuth2 标准为何没有 user_id 字段?
文档参看 4.1.3 节。
http://tools.ietf.org/html/rfc6749#section-4.1.3
如果没有 user_id,那么生成的 token,都是给到 client_id 对应的 user_id。
而存取用户资源的时候,又需要 user_id 来选择是哪个用户。
还是说,按照文档的流程对了即可,添加字段是可以自己把握的?
access_token 肯定是要与 user_id 绑到一起,按照 OAuth2 标准为何没有 user_id 字段?
文档参看 4.1.3 节。
http://tools.ietf.org/html/rfc6749#section-4.1.3
如果没有 user_id,那么生成的 token,都是给到 client_id 对应的 user_id。
而存取用户资源的时候,又需要 user_id 来选择是哪个用户。
还是说,按照文档的流程对了即可,添加字段是可以自己把握的?
1.引导用户点击链接进入OAuth登录流程,携带client_id
2.用户输入信息点击登录,(此时已经有了user_id了)
3.OAuth平台生成token(服务端映射user、session、private_cache等数据与client_id绑定,比如user_id+client_id+client_ip+rand_str & sha1)
4.输出token给服务器
你可以想象成为3个点,客户端->授权服务器->业务服务器,客户端与业务服务器通过API交互数据时需要user_id而get_authorization_code这个阶段是客户端与授权服务器的事,只要提供类似这样的参数就可以了。
client_id=the_client_id&response_type=code&redirect_uri=client_redirect_uri&scope=scope1,scope2&state=654321
其中前面2个参数是必传的(根据http://tools.ietf.org/html/rfc6749#section-4.1.1)。