在登录结束前,会生成access token。调用OIDC服务器的任意接口都需要携带该参数,用于证明当次调用使用特定的用户通过特定的应用发起。
当收到401 Unauthorized状态码,可能是因为access token过期,携带以下请求参数访问POST借口可以获取新的access token:
curl -X POST \ -H "Cache-Control: no-cache" \ -H "Content-Type: application/x-www-form-urlencoded" \ "http://localhost:8000/token/" \ -d "client_id=" \ -d "client_secret=37b1c4ff826f8d78bd45e25bad75a2c0" \ -d "grant_type=refresh_token" \ -d "refresh_token=0bac2d80d75d46658b0b31dbb"
MIDDLEWARE_CLASSES = [ ... 'oidc_provider.middleware.SessionManagementMiddleware', ] OIDC_SESSION_MANAGEMENT_ENABLE = True
在多台服务器部署时,可能需要添加随机但固定的字符串OIDC_UNAUTHENTICATED_SESSION_MANAGEMENT_KEY,因为授权的第三方应用可以通过session计算出浏览器状态而未授权的应用缺少相关的参数。通常安装时会生成随机值,但这些值在不同的服务器不相同。
第三方应用可以通知OIDC服务器,客户已登出,这时,该应用可以将客户导向OIDC服务器的登出URL。通常跳转地址由OIDC服务器的Discovery应答中的end_session_endpoint参数获取。
{ "aud": "", "sub": "1", "exp": , "iat": , "iss": "http://localhost:8000", "active": true, "client_id": "" }
自省错误时,需返回如下键值对:
{ "active": "false" }
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/177439.html原文链接:https://javaforall.net
