我使用的密碼grant_type爲每WSO2文檔hereWSO2 - 檢查訪問令牌仍然有效
我有這方面的工作日誌記錄在用戶在我工作的Web應用程序實現一個OAuth 2令牌流目前,並且將檢索到的訪問令牌存儲在本地存儲中。
如果我想檢查令牌仍然有效(比如用戶刷新瀏覽器),在那裏我可以檢查訪問令牌依然有效且沒有過期的請求?我認爲這將是某種形式的POST請求到令牌終點URL?
感謝
我使用的密碼grant_type爲每WSO2文檔hereWSO2 - 檢查訪問令牌仍然有效
我有這方面的工作日誌記錄在用戶在我工作的Web應用程序實現一個OAuth 2令牌流目前,並且將檢索到的訪問令牌存儲在本地存儲中。
如果我想檢查令牌仍然有效(比如用戶刷新瀏覽器),在那裏我可以檢查訪問令牌依然有效且沒有過期的請求?我認爲這將是某種形式的POST請求到令牌終點URL?
感謝
爲了驗證令牌,有一個管理服務,你可以use.It是一個SOAP服務,並要求「驗證」,在管理服務方法可以用來驗證令牌。
驗證端點 https://localhost:9443/services/OAuth2TokenValidationService/
驗證方法將有效期回給你答覆。該服務是一個管理服務,您可以通過基本身份驗證和其他身份驗證機制(如相互身份驗證)調用該服務。
我相信另一種方法是要求新的令牌,令牌端點。 AFAIR如果存在有效的令牌,則返回帶有可以計算有效期的到期時間。
另一種方法是,如果可能的話,你可以存儲令牌請求的時間,並有一個獨立的定時器來確認有效時間是否過期。在令牌生成請求第一次生成時,它是具有有效期的返回令牌。
正如harsha89提到你可以使用OAuth2TokenValidationService來驗證。樣品SOAP請求會像如下
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://org.apache.axis2/xsd" xmlns:xsd1="http://dto.oauth2.identity.carbon.wso2.org/xsd">
<soapenv:Header/>
<soapenv:Body>
<xsd:validate>
<xsd:validationReqDTO>
<xsd1:accessToken>
<xsd1:identifier>b443652fdc3642bb1b3ba8ebae99068</xsd1:identifier><!--access token received-->
<xsd1:tokenType>bearer</xsd1:tokenType>
</xsd1:accessToken>
<xsd1:context>
<xsd1:key></xsd1:key>
<xsd1:value></xsd1:value>
</xsd1:context>
</xsd:validationReqDTO>
</xsd:validate>
</soapenv:Body>
</soapenv:Envelope>
樣本響應
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns:validateResponse xmlns:ns="http://org.apache.axis2/xsd">
<ns:return xsi:type="ax2369:OAuth2TokenValidationResponseDTO" xmlns:ax2369="http://dto.oauth2.identity.carbon.wso2.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ax2369:authorizationContextToken xsi:type="ax2369:OAuth2TokenValidationResponseDTO_AuthorizationContextToken">
<ax2369:tokenString>eyJhbGciOiJSUzI1NiIsIng1dCI6Ik5tSm1PR1V4TXpabFlqTTJaRFJoTlRabFlUQTFZemRoWlRSaU9XRTBOV0kyTTJKbU9UYzFaQSJ9.eyJodHRwOlwvXC93c28yLm9yZ1wvZ2F0ZXdheVwvYXBwbGljYXRpb25uYW1lIjoiRGVmYXVsdEFwcGxpY2F0aW9uIiwiZXhwIjoxNDQ2Nzg1NjczLCJzdWIiOiJhZG1pbjJAY2FyYm9uLnN1cGVyIiwiaHR0cDpcL1wvd3NvMi5vcmdcL2dhdGV3YXlcL3N1YnNjcmliZXIiOiJhZG1pbiIsImlzcyI6Imh0dHA6XC9cL3dzbzIub3JnXC9nYXRld2F5IiwiaHR0cDpcL1wvd3NvMi5vcmdcL2dhdGV3YXlcL2VuZHVzZXIiOiJhZG1pbjJAY2FyYm9uLnN1cGVyIiwiaHR0cDpcL1wvd3NvMi5vcmdcL2NsYWltc1wvcm9sZSI6WyJJbnRlcm5hbFwvZXZlcnlvbmUiXSwiaWF0IjoxNDQ2NzgzMjExfQ.VY2J_stNVvCwdGdOn71yw96z0EnbtRabQBt8fDFO5LM4TyNmF56T4uXLGjPW-BaHFKEa21ao0s8zW3UVp3yh2Va5pJhJdEcNeSMHObVvDJBdrDbOqrFZnVG7hxV4n4yIJfWt3jciRQz-SdqVYKJuRF-Tn8qfX30m1s0cMeqEZ2A</ax2369:tokenString>
<ax2369:tokenType>JWT</ax2369:tokenType>
</ax2369:authorizationContextToken>
<ax2369:authorizedUser>[email protected]</ax2369:authorizedUser>
<ax2369:errorMsg xsi:nil="true"/>
<ax2369:expiryTime>1737</ax2369:expiryTime>
<ax2369:scope/>
<ax2369:valid>true</ax2369:valid>
</ns:return>
</ns:validateResponse>
</soapenv:Body>
</soapenv:Envelope>
嗯好吧,有沒有終點URL我只是做對的請求?我在我的應用程序中沒有使用網絡服務 – mindparse