我想在android移动应用程序中使用ruby on rails backend为登录页面实现ruby api,因为我是新手,请帮助我完成我的任务,并请告诉实现API的方法 提前致谢
答案 0 :(得分:3)
首先,没有必要在这个问题上加上标记,他是红宝石的新人,我们可以帮助他。
步骤1:要制作api,你必须处理控制器和模型,没有api的视图。
第2步:既然您是关于rails路由的新读者,请让我简单介绍一下,路由器只是决定是否有一个请求来自哪个控制器以及应该触发哪个动作。
步骤3:一旦你在控制器中的动作触发,你可以写出你的逻辑或者在模型中调用一个方法。
步骤4:从模型完成CRUD操作后,将响应返回给控制器。
第5步:根据格式天气,客户需要xml
或json
在xml/json
中对其进行编码,然后从控制器进行渲染。
dats it :)希望它可以帮助你
答案 1 :(得分:1)
我不想引用伟大的思想家,但答案是:这取决于!
你可以简单地使用BASIC AUTHENTICATION为你的应用程序,或者你可以走更复杂的道路使用其他技术,如JWT(Json Web Token)或OAuth或诸如此类......
我假设您刚开始进行Web开发,所以我建议您使用BASIC AUTH(通过某些https连接)开始简单。
对于Rails部分,您只需在要保护的控制器中包含以下指令:
http_basic_authenticate_with name: "username", password: "secret", except: :index
所以一个简单的控制器看起来像这样:
class PostsController < ApplicationController
http_basic_authenticate_with name: "dhh", password: "secret", except: :index
def index
render plain: "Everyone can see me!"
end
def edit
render plain: "I'm only accessible if you know the password"
end
end
此示例直接从此处复制: http://api.rubyonrails.org/classes/ActionController/HttpAuthentication/Basic.html
在客户端,您需要在HTTP标头中提供基本身份验证凭据,如下所示:
"Authorization: Basic dXNlcm5hbWU6c2VjcmV0"
使用BASE64编码这样的用户名和密码(在javascript中):
encoded = btoa(username + ":" + password);
这里介绍了基础知识: https://en.wikipedia.org/wiki/Basic_access_authentication
从那里你可以实现一个简单的用户名/密码屏幕,并在所有后续调用中提供如此生成的标题。
我希望这会让你开始朝着正确的方向前进。不要回避要求并继续学习!
最终,您可能希望继续使用更复杂的基于访问令牌的身份验证方法。
祝你好运, Steviee