react-native-naver-login 에서 Fork 후 변경된 프로젝트.
이전 프로젝트 제작자분에게 감사한 마음을 가집시다!
감사합니다!
$ npm install @altariz/rn-naver-login --save
$ react-native link @altariz/rn-naver-login
- In XCode, in the project navigator, right click
Libraries
➜Add Files to [your project's name]
- Go to
node_modules
➜rn-naver-login
and addRNCNaverLogin.xcodeproj
- In XCode, in the project navigator, select your project. Add
libRNCNaverLogin.a
to your project'sBuild Phases
➜Link Binary With Libraries
- Run your project (
Cmd+R
)<
- Open up
android/app/src/main/java/[...]/MainActivity.java
- Add
import com.altariz.naverlogin.RNCNaverLoginPackage;
to the imports at the top of the file - Add
new RNCNaverLoginPackage()
to the list returned by thegetPackages()
method
- Append the following lines to
android/settings.gradle
:include ':rn-naver-login' project(':rn-naver-login').projectDir = new File(rootProject.projectDir, '../node_modules/rn-naver-login/android')
- Insert the following lines inside the dependencies block in
android/app/build.gradle
:compile project(':rn-naver-login')
- Download to SDK (NaverThirdPartyLogin.framework) https://github.com/naver/naveridlogin-sdk-ios
- In XCode, in the project navigator, right click
Libraries
➜Add Files to [your project's name]
- import a NaverThirdPartyLogin.framework
***** When not working Add these pods in your Podfile and then install.
pod 'React', :path => '../node_modules/react-native', :subspecs => [ 'Core', 'CxxBridge', 'DevSupport', 'RCTText', 'RCTNetwork', 'RCTWebSocket', 'RCTAnimation', 'RCTImage', 'RCTLinkingIOS', ]
pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
pod 'rn-naver-login', :path => '../node_modules/rn-naver-login'
- Nothing.
- Open Info.plist and add your Naver Application information.
<key>NAVER_CLIENT_ID</key>
<string>YOUR_ID</string>
<key>NAVER_CLIENT_SECRET</key>
<string>YOUR_SECRET</string>
<key>NAVER_USE_SCHEMES</key>
<string>YOUR_SCHEME</string>
- Add the URL Scheme in URL Types of Info tab.
- Open AndroidManifest.xml
- Add your Naver ID and Secret Key inside of the tag
<application
...
<meta-data android:name="com.naver.sdk.ClientId" android:value="YOUR_KEY"/>
<meta-data android:name="com.naver.sdk.ClientSecret" android:value="YOUR_KEY" />
</application>
import NaverLogin from 'rn-naver-login';
// TODO: 로그인처리 (이미 로그인되어있어도 창 강제로 띠웁니다)
NaverLogin.login()
.then(res => {
alert("Signed Successful\n" + res.accessToken);
}).catch(e => {
alert("Signed Failure");
});
// TODO: 로그아웃처리
NaverLogin.logout();
// TODO: 토큰가져오기 (로그인안되어있음 안가져옴)
NaverLogin.getAccessToken()
.then(res => {
alert("Signed Successful\n" + res.accessToken);
const header = "Bearer " + res.accessToken; // Bearer 다음에 공백 추가
const _uri = "https://openapi.naver.com/v1/nid/me";
fetch(_uri, {
method: 'get',
headers: new Headers({
'Authorization': header,
}),
body: '',
})
.then((response) => response.json())
.then((res) => {
console.log("res:"+JSON.stringify(res));
})
.catch((err) => {
console.log(`Get Profile Failed:${err.code} ${err.message}`);
});
}).catch(e => {
alert("Signed Failure");
});