앱 개발에서 SNS 인증 클라이언트, 서버 연계
SNS 연계란?
이 Quiita에서도 자주 볼 수 있는, 로그인시의 「Twitter로 등록」등의 것입니다.
이번에는
라는 조건에서
클라이언트, 서버의 연계 방법을 설명합니다. (OAuth 인증)
클라이언트
기본적으로 클라이언트 측에서 인증 서버와 연동하여 사용자의 액세스 권한을 얻습니다.
클라이언트의 프레임워크를 준수하는 다양한 SNS SDK를 통해 최근에는 쉽게 구현할 수 있습니다.
권한 서버에서 사용자별 액세스 토큰을 검색합니다.
이것을 서버로 보냅니다.
예 Swift의 TwitterSDK를 사용한 인증 서버와의 연계
TWTRTwitter.sharedInstance().logIn(completion: { (session, error) in
if (session != nil) {
print("signed in as \(session.userName)");
} else {
print("error: \(error.localizedDescription)");
}
})
서버
클라이언트에서 액세스 토큰을 얻었다고 해서 그대로 액세스 토큰을 DB에 저장해서는 안됩니다. 왜냐하면 최근의 SNS의 액세스 토큰은 유효기간이나 사용횟수 제한 등의 사용제한이 설치되어 있기 때문입니다. 이렇게하면 여러 번 동일한 문자열의 액세스 토큰을 사용할 수 없습니다.
따라서 다음에 로그인할 때 특유의 User인지를 판별하기 위해서는 액세스 토큰이 아닌 다른 data를 판별 data로 해야 합니다.
예를 들어 이메일 주소입니다. 액세스 토큰을 사용하여 SNS 제공 서버에서 다양한 데이터를 검색할 수 있지만, 그 중 하나에 이메일 주소도 있습니다.
메일 주소의 장점은, 만일 SNS의 인가 서버를 사용할 수 없게 되었을 때에, 대용으로서 메일 주소 로그인으로서, SNS로부터 취득한 메일 주소를 사용할 수도 있다는 것입니다. (단, 어떤 SNS 제공 서버에서도 메일 주소를 취득할 수 있는 것은 아니며, SNS로 등록한 메일 주소를 사용자가 분실하고 있을 가능성도 있기 때문에, 최상의 마스트한 요건은 아닙니다. )
예제 RubyOnRails에서 access_token을 사용하여 이메일 얻기
require 'koara'
module FacebookService
class << self
def fetch_mail(access_token)
Koala::Facebook::API.new(access_token).get_object('me')['email']
end
end
end
Reference
이 문제에 관하여(앱 개발에서 SNS 인증 클라이언트, 서버 연계), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ryuseikurata/items/3d31e12b1f0c2a59858b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
TWTRTwitter.sharedInstance().logIn(completion: { (session, error) in
if (session != nil) {
print("signed in as \(session.userName)");
} else {
print("error: \(error.localizedDescription)");
}
})
클라이언트에서 액세스 토큰을 얻었다고 해서 그대로 액세스 토큰을 DB에 저장해서는 안됩니다. 왜냐하면 최근의 SNS의 액세스 토큰은 유효기간이나 사용횟수 제한 등의 사용제한이 설치되어 있기 때문입니다. 이렇게하면 여러 번 동일한 문자열의 액세스 토큰을 사용할 수 없습니다.
따라서 다음에 로그인할 때 특유의 User인지를 판별하기 위해서는 액세스 토큰이 아닌 다른 data를 판별 data로 해야 합니다.
예를 들어 이메일 주소입니다. 액세스 토큰을 사용하여 SNS 제공 서버에서 다양한 데이터를 검색할 수 있지만, 그 중 하나에 이메일 주소도 있습니다.
메일 주소의 장점은, 만일 SNS의 인가 서버를 사용할 수 없게 되었을 때에, 대용으로서 메일 주소 로그인으로서, SNS로부터 취득한 메일 주소를 사용할 수도 있다는 것입니다. (단, 어떤 SNS 제공 서버에서도 메일 주소를 취득할 수 있는 것은 아니며, SNS로 등록한 메일 주소를 사용자가 분실하고 있을 가능성도 있기 때문에, 최상의 마스트한 요건은 아닙니다. )
예제 RubyOnRails에서 access_token을 사용하여 이메일 얻기
require 'koara'
module FacebookService
class << self
def fetch_mail(access_token)
Koala::Facebook::API.new(access_token).get_object('me')['email']
end
end
end
Reference
이 문제에 관하여(앱 개발에서 SNS 인증 클라이언트, 서버 연계), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ryuseikurata/items/3d31e12b1f0c2a59858b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)