나는 MobileServicesClient.RefreshUserAsync()를 호출해야하고, 만약 그렇다면, 엔드 포인트의 종류는 내가 서버에 구현해야합니까? 매번 다른 토큰을 재발행하여 오래된 것을 무효화합니까? 새로 고침 전화는 언제 만들어야합니까? 내가 로그인 한 사용자 당신의 공급자와 액세스 토큰을 새로 고침에 대한 /.auth/refresh
엔드 포인트에 대한 GET 요청을 보낼 것 Microsoft.WindowsAzure.Mobile.dll
의 방법 RefreshUserAsync
을 확인했다
. 사용자 지정 인증을 사용 중이므로 authenticationToken
을 새로 고치는 데이 방법을 사용할 수 없습니다. 누군가가 오른쪽으로 날 지점 수
나는 결코 만료되지 새로 고침 토큰을 사용하는 방법에 대한 읽었습니다,하지만 난 정말 사용자 정의 인증 시나리오에서이를 구현하는 방법에 대한 샘플 구현 또는 지침을 찾을 수 없습니다, 방향? AppServiceLoginHandler에서 CreateToken
방법을 사용하는 경우
, 당신은이 lifetime
null
로, 다음 검색 할 것 지정할 수있는 다음과 같은 authenticationToken
을 결코 만료되지 :
JwtSecurityToken token = AppServiceLoginHandler.CreateToken(claims, signingKey, audience, issuer,null);
을 추가, 당신은 당신의 엔드 포인트를 구축을 시도 할 수 있습니다 다음과 같이 이전 유효한 토큰을 기반으로 새 토큰을 생성합니다.
[Route(".auth/login/customRefreshToken")]
public IHttpActionResult RefreshToken([FromBody] RefreshTokenInput body)
{
string tokenString = body.AuthenticationToken;
try
{
var jwtSecurityToken = new JwtSecurityToken(tokenString);
JwtSecurityToken token = AppServiceLoginHandler.CreateToken(jwtSecurityToken.Claims, signingKey, audience, issuer, TimeSpan.FromDays(30));
return Ok(new LoginResult()
{
AuthenticationToken = token.RawData
});
}
catch (Exception e)
{
return BadRequest("$Error = {e.Message}, StackTrace = {e.StackTrace}");
}
}
참고 : 모바일 클라이언트의 경우 MobileServiceClient.InvokeApiAsync
을 사용하여 새 토큰을 검색 한 다음 authenticationToken
을 구문 분석하고 MobileServiceClient.CurrentUser.MobileServiceAuthenticationToken
으로 업데이트 할 수 있습니다.
결과
당신은이 문제를 해결 도움이 더 필요합니까 적이 있습니까? –