WeChat, Weibo, QQ는 요즘 가장 일반적으로 사용되는 모바일 앱입니다. 제품과 관련이없는 제품을 어떻게 만들 수 있습니까? 로그인을 위해 많은 계정과 비밀번호를 원한다고 생각하지 않으므로 전혀 기억할 수 없습니다!
사용자 경험을 높이기 위해 사용자는 신속하게 등록하고 로그인 할 수 있으며 로그인 할 제 3 자 계정이 필요합니다.
1. Wechat
1) WeChat 로그인도 가장 까다로운 것입니다. 개발자 계정이 되려면 300 개의 바다가 필요합니다. WeChat 사용자 기반을 크게 만들 수있는 사람은 아무도 없으므로 인정해야했습니다. 그런 다음 웹 사이트의 백엔드에 로그인 할 때 웹 사이트 애플리케이션을 작성하고 인증 콜백 도메인 (로그인 웹 사이트의 도메인 이름)을 작성하고 도메인 이름을 작성해야합니다.
응용 프로그램 주소 : https://open.weixin.qq.com/cgi-bin/index?t=home/index&lang=zh_cn
2) WeChat에서 제공 한 인터페이스를 확인하고 Java 코드를 작성하십시오.
public void wx () {try {response.sendredirect ( "https://open.weixin.qqq.com/connect/qrconnect/qrconnect/Qrconnect/Quixinkey.getState () +"& redirect_uri = " + urlencoder.encode (sharelogindict.weixinurl.weixinurl.getInurl.getInurl.getInurl.getInurl.getInurl. "& response_type = code & scope = snsapi_login & state = 66666#wechat_redirect"); } catch (ioexception e) {// todo 자동 생성 캐치 블록 e.printstacktrace (); }} @override public result userwx (string return_code) {result result = new result (); map <string, object> token = (map <string, object>) weixinapi .gettoken (return_code); if (token! = null && token.get ( "access_token")! = null) {map <string, object> user = (map <string, object>) weixinapi .getwxUser ( "access_token"). if (user! = null) {result.addModel ( "openID", user.get ( "OpenID")); result.addmodel ( "닉네임", user.get ( "nickname")); result.addmodel ( "headimgurl", user.get ( "headimgurl")); result.addmodel ( "data", "data_success"); } else {result.addModel ( "data", "data_null"); }} else {result.addModel ( "data", "data_null"); } 반환 결과; }사용자가 WeChat을 통해 로그인하면 WeChat 인터페이스를 호출하여 사용자 인터페이스를 얻고 WeChat 터미널의 OpenID, 별명 및 아바타로 돌아갑니다. 그런 다음이 정보를 브라우저 쿠키에 저장하십시오. 사용자가 다른 정보를 탐색하면 사용자가 WeChat으로 로그인 한 경우 차별화되면 인터셉터는 쿠키에서 사용자의 정보를 직접 얻고 별명과 아바타를 표시하며 동시에 OpenID가 데이터베이스의 사용자에게 바인딩되어 있는지 여부를 결정합니다. 바인딩이 없으면 사용자는 사용자에게 등록하도록 유도합니다.
2. QQ 로그인
1) QQ 인터넷 생성 응용 프로그램
QQ 로그인에 액세스하기 전에 웹 사이트는 먼저 해당 AppID 및 AppKey를 얻으려면 웹 사이트 및 사용자를 후속 프로세스에서 올바르게 확인하고 승인 할 수 있는지 확인해야합니다.
Appid 및 Appkey 용도
Appid : 응용 프로그램의 고유 식별자. OAUTH2.0 인증 프로세스 중에 APPID 값은 OAUTH_CONSUMER_KEY의 값입니다.
APPKEY : APPID에 해당하는 키는 사용자 리소스에 액세스 할 때 응용 프로그램의 정당성을 확인하는 데 사용됩니다. OAUTH2.0 인증 프로세스 중에 AppKey 값은 OAUTH_CONSUMER_SECRET의 값입니다.
응용 프로그램 주소 : http://connect.qq.com/intro/login/
2) QQ에서 제공 한 인터페이스를 확인하고 Java 코드를 작성하십시오.
public void qq () {try {response.sendredirect ( "https://graph.qqq.com/oauth2.0/authorize?response_type=code&client_id=" + sharelogindict.qqkey.getState () + "& redirect_uri =" + shareLogindict.qqurl.gettstate () "& scope = get_user_info"); } catch (ioexception e) {// todo 자동 생성 캐치 블록 e.printstacktrace (); }} @override public result userQq (String return_code) {결과 결과 = 새 결과 (); map <string, object> token = (map <string, object>) qqapi .gettoken (return_code); if (token! = null && token.get ( "access_token")! = null) {map <string, object> tokenme = (map <string, object>) qqapi .gettokenmeopenid (token.get ( "access_token"). toString ()); if (tokenme! = null && tokenme.get ( "openId")! = null) {map <string, object> user = (map <string, object>) qqapi .getqqUser ( "access_token"). tostring (), tokenme.get ( "OpenID"). if (user! = null) {result.addmodel ( "OpenID", tokenme.get ( "OpenID")); result.addmodel ( "닉네임", user.get ( "nickname")); result.addModel ( "figuRl", user.get ( "figurl")); result.addmodel ( "data", "data_success"); } else {result.addModel ( "data", "data_null"); }} else {result.addModel ( "data", "data_null"); }} else {result.addModel ( "data", "data_null"); } 반환 결과; }사용자가 QQ를 통해 로그인하면 QQ 인터페이스를 호출하여 사용자 인터페이스를 얻으려면 QQ 측의 OpenID, 닉네임 및 아바타를 반환합니다. 그런 다음이 정보를 브라우저 쿠키에 저장하십시오. 사용자가 다른 정보를 탐색하면 사용자가 WeChat으로 로그인 한 경우 차별화되면 인터셉터는 쿠키에서 사용자의 정보를 직접 얻고 별명과 아바타를 표시하며 동시에 OpenID가 데이터베이스의 사용자에게 바인딩되어 있는지 여부를 결정합니다. 바인딩이 없으면 사용자에게 등록하라는 메시지를 표시하십시오.
3 Weibo 로그인
1) Weibo에서 응용 프로그램을 만듭니다
응용 프로그램 주소 : http://open.weibo.com/authentication
2) Weibo가 제공 한 인터페이스를 확인하고 Java 코드를 작성하십시오.
public void wb () {try {response.sendredirect ( "https://api.weibo.com/oauth2/authorize?client_id=" + sharelogindict.weibokey.getstate () + "& redirect_uri =" + sharelogindict.weibourl.getstate () + "); } catch (ioexception e) {// todo 자동 생성 캐치 블록 e.printstacktrace (); }} @override public result userwb (String return_url, String return_code) {result result = new result (); map <string, object> token = (map <string, object>) weiboapi.gettoken (return_url, return_code); if (token! = null && token.get ( "access_token")! = null) {map <string, object> user = (map <string, object>) weiboapi (token.get ( "access_token"). tostring (), token.get ( "uid"). if (user! = null) {result.addmodel ( "name", user.get ( "screen_name")); result.addmodel ( "pic", user.get ( "avatar_large")); result.addmodel ( "idstr", user.get ( "idstr")); result.addmodel ( "data", "data_success"); } else {result.addModel ( "data", "data_null"); }} else {result.addModel ( "data", "data_null"); } 반환 결과; }사용자가 Weibo를 통해 로그인하면 Weibo 인터페이스를 호출하여 사용자 인터페이스를 얻고 Weibo 측의 IDSTR, 닉네임 및 아바타로 돌아갑니다. 그런 다음이 정보를 브라우저 쿠키에 저장하십시오. 사용자가 다른 정보를 탐색하면 사용자가 WeChat으로 로그인 한 경우 차별화되면 인터셉터는 쿠키에서 사용자의 정보를 직접 얻고 별명과 아바타를 표시하며 동시에 OpenID가 데이터베이스의 사용자에게 바인딩되어 있는지 여부를 결정합니다. 바인딩이 없으면 사용자는 사용자에게 등록하도록 유도합니다.
읽어 주셔서 감사합니다. 도움이되기를 바랍니다. 이 사이트를 지원 해주셔서 감사합니다!