qq授権ログイン.微信授権登録、微博授権登録

5668 ワード

微信認証ログイン
1) 
微信の授権登録は比較的面倒で、微信の公衆プラットフォームに行ってappid、appsecretを手に入れて配置する必要があります.
微信の授権には2つあります.1つは微信が直接登録を授権することです.もう1つは、このサイトに自分のアカウントシステムがあり、微信とバインドする必要があります.1つ目は、次のコードが表示されます.第二に、ウェブサイトのデータベースを取得し、バインドし、idによって判断し、重複を避ける必要がある.ピーナッツの殻のマッピングサービスを登録して外部ネットワークアドレスを得る必要があります.
申請住所:https://open.weixin.qq.com/cgi-bin/index?t=home/index&lang=zh_CN
2)微信が提供するインタフェースを見てjavaコードを書く
public void wx() {
 try {
  response.sendRedirect("https://open.weixin.qq.com/connect/qrconnect?appid="
   + ShareLoginDict.WEIXINKEY.getState()
   + "&redirect_uri="
   + URLEncoder.encode(ShareLoginDict.WEIXINURL.getState()) 
   + "&response_type=code&scope=snsapi_login&state=66666#wechat_redirect");
 } catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 }
 
@Override
 public Result userwx(String return_code) {
 Result result = new Result();
 Map token = (Map) WeiXinAPI
  .getToken(return_code);
 if (token != null && token.get("access_token") != null) {
  Map user = (Map) WeiXinAPI
   .getWxUser(token.get("access_token").toString(),
    token.get("openid").toString());
  if (user != null) {
  result.addModel("openid", user.get("openid"));
  result.addModel("nickname", 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");
 }
 return result;
 }

ユーザーが微信を通じてログインすると、微信インタフェースを呼び出してユーザーインタフェースが微信端に戻るopenid、ニックネーム、アバターを取得する.その後、この情報をブラウザのクッキーに格納し、ユーザーが他の情報を閲覧すると、ユーザーが微信でログインしている場合、ブロッカーがクッキーから直接ユーザーの情報を取得してニックネームとアイコンを表示し、openidがデータベースのユーザーとバインドされているかどうかを判断し、バインドがなければユーザーに登録を促す.
qqログイン
1)qq相互接続作成アプリケーション
QQ登録にアクセスする前に、ウェブサイトはまず申請を行い、対応するappidとappkeyを獲得し、後続のプロセスでウェブサイトとユーザーを正しく検証し、授権することを保証しなければならない.
appidとappkeyの用途を申請する
appid:適用される一意の識別.OAuth 2.0認証中、appidの値はoauth_consumer_keyの値.
appkey:appidに対応する鍵で、ユーザーリソースにアクセスする際にアプリケーションの正当性を検証します.OAuth 2.0認証中、appkeyの値はoauth_consumer_secretの値.
申請住所:http://connect.qq.com/intro/login/
2)QQ提供のインタフェースを見て、javaコードを書く
public void qq() {
 try {
  response.sendRedirect("https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id="
   + ShareLoginDict.QQKEY.getState()
   + "&redirect_uri="
   + ShareLoginDict.QQURL.getState() + "&scope=get_user_info");
 } catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 }
 
@Override
 public Result userqq(String return_code) {
 Result result = new Result();
 Map token = (Map) QQAPI
  .getToken(return_code);
 if (token != null && token.get("access_token") != null) {
  Map tokenme = (Map) QQAPI
   .getTokenMeOpenId(token.get("access_token").toString());
  if (tokenme != null && tokenme.get("openid") != null) {
  Map user = (Map) QQAPI
   .getQqUser(token.get("access_token").toString(),
    tokenme.get("openid").toString());
  if (user != null) {
   result.addModel("openid", tokenme.get("openid"));
   result.addModel("nickname", user.get("nickname"));
   result.addModel("figureurl", user.get("figureurl"));
   result.addModel("data", "data_success");
  }else{
   result.addModel("data", "data_null");
  }
  }else{
  result.addModel("data", "data_null");
  }
 
 }else{
  result.addModel("data", "data_null");
 }
 return result;
 } 

ユーザーがQQを通じてログインする時、QQインタフェースを呼び出してユーザーインタフェースを取得してQQ端のopenid、ニックネーム、顔を返します;その後、この情報をブラウザのクッキーに格納し、ユーザーが他の情報を閲覧すると、ユーザーが微信でログインしている場合、ブロッカーがクッキーから直接ユーザーの情報を取得してニックネームとアイコンを表示し、openidがデータベースのユーザーとバインドされているかどうかを判断し、バインドがなければユーザーに登録を促す.
3マイクロブログ登録
1)マイクロブログ作成アプリケーション
申請住所:http://open.weibo.com/authentication
2)マイクロブログが提供するインタフェースを見てjavaコードを書く
public void wb() {
 try {
  response.sendRedirect("https://api.weibo.com/oauth2/authorize?client_id="
   + ShareLoginDict.WEIBOKEY.getState()
   + "&redirect_uri="
   + ShareLoginDict.WEIBOURL.getState()
   + "&response_type=code");
 } catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 }
 
@Override
 public Result userwb(String return_url, String return_code) {
 Result result = new Result();
 Map token = (Map) WeiBoAPI.getToken(
  return_url, return_code);
 if (token != null && token.get("access_token") != null) {
  Map user = (Map) WeiBoAPI
   .getWbUser(token.get("access_token").toString(),
    token.get("uid").toString());
  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");
 }
 return result;
 }

ユーザがマイクロブログにログインすると、マイクロブログインタフェースを呼び出してユーザインタフェースがマイクロブログ端末に戻るidstr、ニックネーム、アバターを取得する.その後、この情報をブラウザのクッキーに格納し、ユーザーが他の情報を閲覧すると、ユーザーが微信でログインしている場合、ブロッカーがクッキーから直接ユーザーの情報を取得してニックネームとアイコンを表示し、openidがデータベースのユーザーとバインドされているかどうかを判断し、バインドがなければユーザーに登録を促す.
注:この文章は他のウェブサイトで1人の大物が书いたのを见て、感じは悪くなくて、転载することができないため、自分で1部书いて、持ってきて主に自分に见ます;微信は自分でやったことがあるので、自分の見解を加えて、みんなに役に立つことを望んでいます.