2016-09-01 2 views
1

루비 버전 작동 하는가하는 방법은 2.2.4 내가 프로그래밍 단지 초보자이고 내가 작업에이 버전 5.0.0.1루비 : JWT 정말 여기

안녕하세요 사람,

레일 안드로이드 스튜디오로 안드로이드 앱을 만들고, 거기서 당신은 사용자로 로그인하고 로그 아웃 할 수 있습니다. 따라서 레일즈 서버 인증의 JSON API를 사용해야합니다.

나는 Ruby on Rails 5 API (http://tutorials.pluralsight.com/ruby-ruby-on-rails/token-based-authentication-with-ruby-on-rails-5-api)로 토큰 기반 인증 자습서를 따라 갔다. 이 튜토리얼에서는 컬을 사용하여 자격 증명을 게시 한 후 JWT로 토큰을 얻는 방법을 보여줍니다. 나는 다음 단계가 무엇인지 잘 모릅니다 총 초보자으로 {"auth_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJleHAiOjE0NjA2NTgxODZ9.xsSwcPC22IR71OBv6bU_OGCSyfE89DvEzWfDU0iybMA"}

curl -H "Content-Type: application/json" -X POST -d '{"email":"[email protected]","password":"123123123"}' http://localhost:3000/authenticate 

처럼 곱슬 곱슬에 올바른 자격 증명을 가하고 후 드디어 토큰 다음 받는다. 이 토큰은 무엇입니까? 어떻게하면 안드로이드 앱에 로그인 기능을 구현할 수 있습니까? 어떻게 생겼지?

답변

0

API에 대한 모든 요청에 ​​대해이 토큰이 필요할 수 있습니다. API를 요청할 때마다 헤더로 넣어야합니다. 또한 이것은 귀하의 세션을 나타내는 지표가 될 수 있습니다.

+0

그래도 저는이 모든 것이 어떻게 연결되어 있는지 알지 못합니다. 내 안드로이드 앱에 로그인 버튼이 있습니다. 사용자는 그것을 클릭하고 이전에 레일 서버에 등록한 전자 메일과 암호를 제공합니다. 전자 메일과 암호가 올바른지 안드로이드 프로그램에서 어떻게 알 수 있습니까? 어떻게 안드로이드 프로그램과 레일 서버를 연결할 수 있습니까? 루비 레일에 MySQL 데이터베이스가 있습니다. 내 생각에 저장된 이메일과 비밀번호가 있습니다. 그러나이 토큰은 어떤 역할을합니까? 다른 곳에 저장되어 있습니까? 나를 위해 이해하기가 힘들다 .. – Peter

0

아마 서버에 대한 모든 요청의 유효성을 검사하기 위해 토큰이 필요합니다. 현재 Retrofit을 사용하여 요청을 수행하고 okhttp을 사용하여 인터셉터 또는 Authenticator API에서 헤더를 다시 작성합니다. 또한 계정에 연결된 토큰을 새로 고쳐야하기 때문에 도움이 될 Account Manager 설명서를 살펴 봐야합니다.

+0

어쨌든 고마워. 서버에 대한 모든 요청의 유효성을 검사하기 위해 토큰이 필요하다고 했잖아요. 그래서 내 이해가 이런 식으로 간다 : 나는 사용자 (전자 메일, 비밀 번호)의 자격 증명으로 컬을 호출하는 안드로이드에 대한 방법을 프로그램합니다. 그런 다음 토큰이 생성되고 안드로이드의 프로그램이 명령 내에 토큰이있는 두 번째 컬 명령을 호출하여 사용자를 승인 할 수 있습니다. 나는 생각하고 있니? – Peter

+0

나는 컬에 익숙하지 않지만 흐름은 동일하다. - 사용자 자격 증명 (전자 메일 및 암호) 얻기 - 토큰 검색 요청 게시 - 서버 응답 (상태 코드 올바른 경우 200) - 전자 메일 및 인증 코드 (암호가 아님)를 사용하여 계정 관리로 새 계정을 만듭니다. - 그런 다음 각 헤더 요청에서 토큰을 추가해야합니다 (예 : 요격기 포함). 계정 관리자는 토큰 새로 고침을 도와줍니다. –

+0

좋아요.하지만 안드로이드 앱으로 로그인하고 로그 아웃하면됩니다. 등록은 루비 서버에서 발생합니다 : http : // localhost : 3000/users/sign_up. 그렇다면 계정 관리자가 필요합니까? – Peter