2012-05-02 3 views
-2

고객을 위해 PHP로 메일 클라이언트를 개발 중이며,이 단일 클라이언트에서 다양한 이메일 계정을 모두 처리 할 수 ​​있기를 원합니다.Gmail 인증을 앱에 어떻게 저장해야합니까?

사용자는 서비스를 사용할 때마다 모든 암호를 입력 할 필요가 없으며 내 문제이기도합니다. 메일 계정에 비밀번호를 입력하지 않고 Gmail을 통해 메일을 검색하고 보내는 방법이 있습니까? 다른 방법이 있습니까? 아니면 암호로 데이터베이스에 암호를 저장하고 "숨겨진"키로 암호를 해독해야합니까?

+0

먼저 [무엇을 시도 했습니까?] (http://whathaveyoutried.com) 둘째, 암호에 대해 선호하는 해싱 방법 중 하나를 사용하여 암호화 된 문자열을 해독 할 수 없습니다 . 문자열 해독하는 유일한 방법은 자신의 암호 해독/암호화 기능을 사용하거나 작성하는 경우입니다 (대부분 개인용 암호화 방법은 base64를 사용합니다). 그러나 일반적으로 쉽게 깨지기 때문에 암호에 권장되는 방법은 아닙니다. –

+0

글쎄, 나는 AES_ENCRYPT() (mysql 함수)를 시도하려고했다. 그러나 나는 여전히 암호화 키를 저장할 필요가 있으며 암호를 저장하는 것이 위험하다고 생각합니다. 나는 암호를 테이블에 저장하고 일부 알고리즘을 사용하여 암호를 메일 계정에 연결할 수 있습니다. 그러나 그것은 또한 그것을 해결하는 나쁜 방법 일 수 있습니까? – user1195745

+0

예. 현재 해싱 방법의 전체적인 의도는 개발자를 비롯한 모든 사람이 암호를 해시하는 것을 방지하는 것입니다. 고객은 자신의 비밀번호를 안전하게 입력 할 수있는 제품을 제공해야합니다. Drknezz의 조언을 듣고 Google이 제공하는 토큰 방식을 시도해보고 가능한 한 최선을 다해 작업하십시오. Hotmail을 사용하는 것이 더 힘들지는 않지만 (예 : Microsoft 제품과 마찬가지로) –

답변

2

https://developers.google.com/google-apps/gmail/ OAuth 절을 읽으십시오.

OAuth는 암호 대신 토큰을 제공합니다. 사용자가 Gmail 비밀번호를 변경하더라도 토큰은 사용자가받은 편지함에 액세스 할 수 있도록 허용합니다.

Hotmail의 경우 ... OAuth API가 없다고 생각합니다. 슬프게도.

단지의 경우이 읽기 : 이메일 서버와 http://msdn.microsoft.com/en-us/library/live/hh826535

+0

감사합니다! 좋은 해결책 인 것처럼 들리지만, hotmail이 지원하지 않는 것은 나쁘다. 나는 그것을 시도 할 것이다! – user1195745

0

인증 당신이 지하실에 대해 바로 그래서 당신이 암호를 전달할 필요의 데이터베이스에 저장하는 메커니즘 (암호)를 해독됩니다 신청. 누군가가 귀하의 데이터를 얻으면 전자 메일 암호를 읽을 수 없게되지만 응용 프로그램이 해독 할 키를 저장하는 방법에주의를 기울여야합니다. 다음은 암호 용 PHP의 일부 확장입니다. http://www.php.net/manual/en/refs.crypto.php

+0

아! OAuth 권장 사항 +1은 이메일에이 인증 양식이있는 한 유효합니다. USER 및 APP를 승인하므로 더 좋습니다. DB에 사용자와 관련된 토큰을 저장해야합니다 (즉, 사용자가 자신을 가장하기 위해 앱을 승인한다는 의미입니다). 소비자 (비밀) 키가 필요합니다 (응용 프로그램을 유효한 클라이언트로 연결) – mvaldes