在ServiceStack客户端中使用OAuth

pja*_*cko 8 oauth servicestack

我试图在客户端上使用OAuth(facebook/twitter)然后使用ServiceStack进行身份验证时感到困惑.我看到在客户端进行身份验证的所有示例都使用基本身份验证,如下所示:

var response = _client.Send<AuthResponse>(new Auth
{
    provider = CredentialsAuthProvider.Name,
    UserName = model.Username,
    Password = model.Password,
    RememberMe = true
});
Run Code Online (Sandbox Code Playgroud)

我需要做些什么才能通过Facebook验证我的独立客户端?我打电话给FB并获得UID,访问令牌,电子邮件等,那么对服务堆栈的调用是什么?

目前我的想法是在客户端上使用FB进行身份验证,调用服务以检查用户是否存在(查看电子邮件地址).如果他们没有注册并使用他们的一些数据的哈希作为密码登录.如果它们存在,请以相同方式记录它们.这是合理/最佳做法吗?

提前致谢

paa*_*hpa 2

我需要做什么才能通过 Facebook 验证我的独立客户端?那么调用服务堆栈来进行身份验证是什么呢?

您可以使用 FacebookAuthProvider ( https://github.com/ServiceStack/ServiceStack/wiki/Authentication-and-authorization ) 处理对 ServiceStack 和 Facebook 的身份验证。将请求**发布到“/auth/facebook”(ServiceStack 提供的端点)将针对 ServiceStack 和 Facebook 进行身份验证。在 ServiceStack 中,您可以使用 访问 Facebook“令牌” UserSession.GetOAuthTokens("facebook")。我认为您可以与您的客户端共享这些令牌,或者让您的客户端通过您的 ServiceStack 端点(您创建的)来访问 Facebook。与 TwitterGateway ( https://github.com/ServiceStack/SocialBootstrapApi/blob/master/src/SocialBootstrapApi/Logic/TwitterGateway.cs ) 在 SocialBootStrapApi 示例中的工作方式类似。

**{"UserName":"yourname", "Password":"yourpassword", "RememberMe":true/false}