2016-10-14 9 views
1

Привет, У меня возникают проблемы с аутентификацией Servicestack с компонентом Xamarin.auth.Servicestack LinkedIn Oauth2 с веб-аутентификатором, не возвращающимся в приложение

при попытке пройти аутентификацию с помощью ServiceStack с помощью WebAuthencator, я получаю аутентификацию, но не могу вернуться в приложение, как в случае с Xamarin.Auth.

[Route("/my-session")] 
public class CustomUserSession : AuthUserSession ,IReturn<CustomUserSession> 
{ 
    public string GithubProfileUrl { get; set; } 
    public string TwitterProfileUrl { get; set; } 
    IRedisClientsManager RedisManager; 


    public override void OnAuthenticated(IServiceBase authService, IAuthSession session, IOAuthTokens tokens, Dictionary<string, string> authInfo) 
    { 
     base.OnAuthenticated(authService, session, tokens, authInfo); 
     var userAuthRepo = authService.ResolveService<IUserAuthRepository>(); 
     var userAuth = userAuthRepo.GetUserAuth(session.UserAuthId); 
} 

} 

вот RAW запрос от JsonServiceClient

GET http://sample.com/api/my_info HTTP/1.1 
Accept: application/json 
Accept-Encoding: gzip, deflate 
Authorization: DotNetOpenAuth.WebServerClient.XSRF-Session=GGcwh7UvAe3R5ivrrAv7MQ; ss-id=5byYKQ5TYwmYqK3EQ5Vi; ss-pid=82ZTomRsZmdRTTA6dkMF; X-UAId=1 
Connection: keep-alive 
Host: sample.com 

RESPONSE : 
HTTP/1.1 401 Unauthorized 
Cache-Control: private 
Server: Microsoft-IIS/8.5 
WWW-Authenticate: LinkedIn realm="https://www.linkedin.com/uas/oauth2/authorization" 
X-Powered-By: ServiceStack/4.0 Win32NT/.NET 
X-AspNet-Version: 4.0.30319 
X-Powered-By: ASP.NET 
Date: Fri, 25 Nov 2016 19:59:37 GMT 
Content-Length: 0 

в то время как тот же вызов/API/my_info в браузере перенаправляет к аутентификации и получает информацию.

Browser Запрос:

GET /api/my_info HTTP/1.1 
Host: sample.com 
Connection: keep-alive 
Upgrade-Insecure-Requests: 1 
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 
Accept-Encoding: gzip, deflate, sdch 
Accept-Language: en-US,en;q=0.8 
Cookie: ss-pid=pnxqAEU3ExIzrVZ8QdR/; ss-id=qCAkeAUDbQ+QRkZvIQgv; DotNetOpenAuth.WebServerClient.XSRF-Session=lFqnWxGQfdOZEF55MrLT_Q; X-UAId=1 

Browser Respone:

HTTP/1.1 200 OK 
Cache-Control: private 
Content-Type: text/html 
Server: Microsoft-IIS/8.5 
X-Powered-By: ServiceStack Win32NT/.NET 
X-AspNet-Version: 4.0.30319 
X-Powered-By: ASP.NET 
Date: Tue, 22 Nov 2016 20:38:37 GMT 
Content-Length: 9443 
Connection: keep-alive 

<!doctype html> 
<html lang="en-us"> 
<head> 
<title>Simple Snapshot of 11/22/2016</title> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<style type="text/css"> 
BODY, H1, H2, H3, H4, H5, H6, DL, DT, DD { 
.............. 

Также JsonServiceClient получает SS-идентификатор, но позже вызова аутентификации службы сбой с 401.

ответ

2

Там пример проекта с Docs, показывающий как аутентифицировать ServiceStack с помощью Xamarin.Auth можно получить по адресу:

+0

Я следовал за такое же решение, но я застрял в redirectUri предоставляется на LinkedIn. –

+0

Имеет здесь –

+0

var userSessionInfo = jsonServiceClient.Get ("/ my-session"); Он говорит, что WebServiceException не найден –