8

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

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

我需要做什么来使用 facebook 验证我的独立客户端?我调用 FB 并获取 UID、访问令牌、电子邮件等。然后调用服务堆栈进行身份验证是什么?

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

提前致谢

4

1 回答 1

2

我需要做什么来使用 facebook 验证我的独立客户端?那么对服务堆栈进行身份验证的调用是什么?

您可以使用 FacebookAuthProvider ( https://github.com/ServiceStack/ServiceStack/wiki/Authentication-and-authorization ) 处理对 ServiceStack 和 Facebook 的身份验证。将请求** 发布到“/auth/facebook”(ServiceStack 提供的端点)将针对 ServiceStack 和 Facebook 进行身份验证。在 ServiceStack 中,您可以使用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}

于 2013-02-18T16:08:36.807 回答