diff --git a/docs/protocols/openid.md b/docs/protocols/openid.md index 3f030782..097e86fa 100644 --- a/docs/protocols/openid.md +++ b/docs/protocols/openid.md @@ -94,7 +94,7 @@ GET /authorize? &state=af0ifjsldkj &redirect_uri=https%3A%2F%2Fclient.example.org%2Fcb HTTP/1.1 Host: server.example.com - +
@@ -102,7 +102,7 @@ GET /authorize?
Location: https://client.example.org/cb?
code=SplxlOBeZQQYbYS6WxSbIA
&state=af0ifjsldkj
-
+
@@ -127,7 +127,7 @@ RP使用上一步获得的code来请求Token EndPoint,这一步桶OAuth2,就
K5hoDalrcvRYLSrQAZZKflyuVCyixEoV9GfNQC3_osjzw2PAithfubEEBLuVVk4
XUVrWOLrLl0nx7RkKU8NXNHq-rvKMzqg"
}
-
+
其中看起来一堆乱码的部分就是JWT格式的ID-Token。在RP拿到这些信息之后,需要对id_token以及access_token进行验证(具体的规则参见http://openid.net/specs/openid-connect-core-1_0.html#IDTokenValidation和http://openid.net/specs/openid-connect-core-1_0.html#ImplicitTokenValidation)。至此,可以说用户身份认证就可以完成了,后续可以根据UserInfo EndPoint获取更完整的信息。
HTTP/1.1 200 OK
@@ -205,5 +205,5 @@ UserInfo Endpoint
"email": "janedoe@example.com",
"picture": "http://example.com/janedoe/me.jpg"
}
-
+
其中sub代表EU的唯一标识,这个claim是必须的,其他的都是可选的。
\ No newline at end of file