3

在我的应用程序中,我使用了linkedIn API 登录。如果用户已经在同一个浏览器中的linkedIn中登录并在我的网站中按下linkedin登录按钮,用户将自动登录到我的网站。但我想问一下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 回答