【问题标题】:Using OAuth in ServiceStack client在 ServiceStack 客户端中使用 OAuth
【发布时间】:2013-01-31 02:25:15
【问题描述】:

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

提前致谢

【问题讨论】:

    标签: oauth servicestack


    【解决方案1】:

    我需要怎么做才能通过 facebook 对我的独立客户端进行身份验证? 那么调用服务堆栈进行身份验证的方法是什么?

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

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

    【讨论】:

    • 是否可以使用 C# 客户端访问 auth/facebook 端点并绕过提示用户授予应用程序权限? (我希望我的 monotouch 客户端使用 FB 凭据调用 SS,让 SS 登录并使用用户图自动填充 SS 表)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-15
    • 2012-12-17
    • 1970-01-01
    • 2015-11-28
    • 2013-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多