3

私のアプリケーションでは、linkedIn API を使用してログインしました。ユーザーが既に同じブラウザのlinkedInにログインしていて、自分のWebサイトのlinkedinログインボタンを押すと、ユーザーは自動的に自分のWebサイトにログインします。しかし、私はlinkedInが提供する「アクセスを許可する」ポップアップ認証ウィンドウを要求したい.

編集: Samer Becharaの回答を使用

$(document).ajaxSend(function(event, jqxhr, settings) {   
    if ( settings.url == "https://www.linkedin.com/uas/oauth/authenticate" ) {
           settings.url = "https://www.linkedin.com/uas/oauth/authorize"   
    } 


 });

<script type="text/javascript" src="http://platform.linkedin.com/in.js">
        api_key: apikey goes here
        onLoad: onLinkedInLoad
      authorize: false
    </script>

    <script type="text/javascript">
      function onLinkedInLoad() {
       IN.ENV.js.scope = new Array();
       IN.ENV.js.scope[0] = "r_emailaddress";
       IN.ENV.js.scope[1] = "r_contactinfo";  

       //IN.User.authorize();
       IN.Event.on(IN, "auth", onLinkedInAuth);
      }




      function onLinkedInAuth() {

        IN.API.Profile("me").fields("id,firstName,lastName,headline,emailAddress,mainAddress,phoneNumbers").result(displayProfiles);
      }

      function displayProfiles(profiles) {

        member = profiles.values[0];
        var phs="";
        var mid =member.id;
        var eid= member.emailAddress;
        var mad= member.mainAddress;
        var ln= member.lastName;
        var fn= member.firstName;
         var json = JSON.stringify(profiles);
         var ph=member.phoneNumbers._total;

         if(ph >0){
          phs=member.phoneNumbers.values[0].phoneNumber;
         }


      }

    </script>
4

1 に答える 1

0

目的を達成するには、OAuth エンドポイントをhttps://www.linkedin.com/uas/oauth/authenticateからhttps://www.linkedin.com/uas/oauth/authorizeに変更する必要があります。これはうまくいくはずです。

ただし、JavaScript ベースの API を使用してこれを行うことはできません。これは、セキュリティ上の目的で JS ファイルが難読化されているためです。これを行う唯一の方法は、認証システムをサーバー側 (PHP など) に移動することです。これにより、承認エンドポイントを自分で変更できます。

編集

jQuery.ajaXSend()このメソッドを次のように使用して、リクエストを変更できます。私はこれをテストしていませんが、あなたのために働くはずです。

$(document).ajaxSend(function(event, jqxhr, settings) {   
    if ( settings.url == "https://www.linkedin.com/uas/oauth/authenticate" ) {
           settings.url = "https://www.linkedin.com/uas/oauth/authorize"   
    } 
});
于 2013-02-04T13:31:43.470 に答える