2016-06-09 2 views
0

Android 앱에서 signInWithGoogle에서 Firebase로 이전 할 예정입니다..net의 firebase 토큰을 디코드하십시오.

내 Android 앱에서 firebase 사용자를 생성하고 사용자 정보를 가져올 수 있지만 백엔드 서버 인증에 firebase 토큰을 사용하는 데 문제가 있습니다.

토큰을 서버에 전달하고 디코드하고 전자 메일 주소 나 다른 개인 정보를 전달하는 대신 사용자의 유효성을 검사 할 수 있기를 원합니다. 이 난 그냥 서버까지 토큰을 통과했고 googleapis.com/oauth2/v3/tokeninfo?id_token=TOKEN 에서 엔드 포인트를 쳐서 내가 확인하고 사용자가이 방법을 인증 할 수

signInWithGoogle와

// The user's ID, unique to the Firebase project. Do NOT use this value to // authenticate with your backend server, if you have one. Use //FirebaseUser.getToken() instead.

문서의 인증 선호하는 방법입니다 .
(https://developers.google.com/identity/sign-in/web/backend-auth는)

이 중포 기지가이 기능을 제공하지 않는 것 같습니다. 내가 찾을 수있는 것은 Java 및 NODEjs 용 SDK입니다. (https://firebase.google.com/docs/auth/server#use_a_jwt_library)

.NET에서 토큰을 디코딩 할 수있는 방법이 있습니까?

답변

0
나는이 방법을 사용하여 Org.BouncyCastle ( https://www.nuget.org/packages/BouncyCastle/)와 Jose.JWT ( https://www.nuget.org/packages/jose-jwt/) 라이브러리를 사용하여 .NET에서 토큰을 디코딩 할 수있었습니다

related question

string [email protected]"eyGF...._pEkKGg...NnO7w"; 

StreamReader sr = new StreamReader(GenerateStreamFromString("-----BEGIN PRIVATE KEY-----\nMIIE...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n-----END PRIVATE KEY-----\n")); 
var pr=new Org.BouncyCastle.OpenSsl.PemReader(sr); 
RsaPrivateCrtKeyParameters RsaParams = (RsaPrivateCrtKeyParameters)pr.ReadObject(); 

string decodedToken=Jose.JWT.Decode(tokenToDecode, Org.BouncyCastle.Security.DotNetUtilities.ToRSA(RsaParams), JwsAlgorithm.RS256); 

노트를 것입니다 여기도 도와주세요.

+0

이것은 나를 위해 작동하지 않습니다 그리고 나는 JWT를 시도, 잘 작동합니다. – user1892203

+0

@ user1892203 - 당신이보고있는 것에 대한 세부 사항으로 새로운 질문을 제기 할 수 있다면, 내가 도울 수있는 일을 할 것입니다. 귀하의 의견은 도움을 줄 수있는 충분한 정보를 제공하지 않습니다. – Elliveny

관련 문제