将通过securesocial保护的Play Framework rest呼叫公开到移动应用程序

将通过securesocial保护的Play Framework rest呼叫公开到移动应用程序,rest,playframework,playframework-2.2,securesocial,Rest,Playframework,Playframework 2.2,Securesocial,我想将我的Play Framework REST调用公开给我的Play应用程序以外的客户端 我想要一个移动应用程序来调用这些安全的rest调用 我在今年早些时候问了一个问题,得到了答案,但这只适用于OAuth2,我只使用OAuth1 我的问题是: 将我的PlayFramework应用程序上的Securesocial保护的REST呼叫公开给非web客户端(如移动应用程序)是一个好主意吗 有没有办法使用Securesocial for OAuth1实现这一点 除了我上一个问题的链接中的例子外,还有其

我想将我的Play Framework REST调用公开给我的Play应用程序以外的客户端

我想要一个移动应用程序来调用这些安全的rest调用

我在今年早些时候问了一个问题,得到了答案,但这只适用于OAuth2,我只使用OAuth1

我的问题是:

  • 将我的PlayFramework应用程序上的Securesocial保护的REST呼叫公开给非web客户端(如移动应用程序)是一个好主意吗
  • 有没有办法使用Securesocial for OAuth1实现这一点
  • 除了我上一个问题的链接中的例子外,还有其他例子吗
    主快照中的最新更改包括LoginApi控制器,该控制器允许您使用API对用户进行身份验证。它支持UsernamePasswordProvider和所有OAuth2Providers

    在UsernamePasswordProvider的情况下,您可以发布用户凭据,如果它们没有问题,您将获得一个带有令牌的json,该令牌可以在X-Auth-token头中用于调用SecuredActions。例如:

    curl --data "username=some@email.com&password=some_password” http://localhost:9000/auth/api/authenticate/userpass  
    
    对于基于OAuth2的提供者,您必须发布一个JSON,其中包含由外部服务(在客户端获得)生成的accessToken以及用户电子邮件。模块将使用accessToken来验证它是否有效,并将外部服务返回的电子邮件与传入的电子邮件进行比较。如果它们匹配,则认为用户已通过身份验证。这与FortyTwo的同事们所做的非常相似,我认为内置该功能会很好()

    例如,在客户端使用Facebook进行身份验证(例如:使用Javascript)后返回一个文件test.json,其中包含accessToken和expiresIn值:

    您可以调用:

    curl -v --header "Content-Type: application/json" --request POST --data-binary "@test.json" http://localhost:9000/auth/api/authenticate/facebook
    
    上述任何调用的json响应示例如下:

    {"token":"98b9613dac60890b8e0abf5bc0f77591523df4e6de50b085c832116b8db2cc65511e0de6780f6a49f8755eddabbd46e6afada92160758fd6d4bbb25dc57e0f7b1e4b5b59fbbe543cf80ad1b6d91de7764e3ac1aaa0afac0c312a47bf27258f455606c6c19b1a3d40f8631ce98e6b76e128dddcb29511eb81200ffe9de95cba7a","expiresOn":"2014-05-07T07:43:10.987-03:00"}
    
    然后,您可以调用安全操作,如下所示:

    curl -v --header "Content-Type: application/json" -H "X-Auth-Token: 819a9cb9227d2c82af9c1ee2a62b9e7d35725e235e086ab95ecce0b509f3f7b389f430e217e341306ecaebfd1972ac083de73a32341a26f97150ae71fb0417f0031534d818356b2266ffc100e5ee6a50bd1f9ec76b0f68d2ff8ce4d196b4a86b61e002b29b00532ef166cb2eb8476d3ae008c112891628bc0f444c7512c01345" http://localhost:9000/my-protected-action 
    
    我建议使用()。轮廓设计灵活


    你可以找到一个种子项目,它使用一个剪影,公开了一个用于注册、登录和社会认证的rest api。

    Jorge你是一个超级明星,我通过切换到OAuth2并使用上面发布的链接成功地实现了它,但我肯定会切换到这个方法。同上。谢谢你,乔治!出色的工作,非常感谢Jorge!API调用是否也可用于注册过程?谢谢Fynn,还没有,但它们将是。Hi@Jorge,API调用现在是否可用于注册过程?
    curl -v --header "Content-Type: application/json" -H "X-Auth-Token: 819a9cb9227d2c82af9c1ee2a62b9e7d35725e235e086ab95ecce0b509f3f7b389f430e217e341306ecaebfd1972ac083de73a32341a26f97150ae71fb0417f0031534d818356b2266ffc100e5ee6a50bd1f9ec76b0f68d2ff8ce4d196b4a86b61e002b29b00532ef166cb2eb8476d3ae008c112891628bc0f444c7512c01345" http://localhost:9000/my-protected-action