rocker / facebook-login
一个允许使用 Facebook 认证登录到 PHP-Rocker 应用的包(https://github.com/victorjonsson/PHP-Rocker)
1.0.5
2013-05-19 07:37 UTC
Requires
- php: >=5.3.2
- facebook/php-sdk: dev-master
- rocker/server: 1.1.*
This package is not auto-updated.
Last update: 2024-09-23 13:52:49 UTC
README
将此包安装到您的 Rocker 应用 中,您将获得一个 RESTful API,可以认证使用 Facebook 身份登录的用户。
本安装指南假设您已具备关于 composer 的基本知识
1) 安装 PHP-Rocker
在这里您可以了解更多关于 如何开始使用 PHP-Rocker 的信息
2) 添加 Facebook 登录包
在 composer.json 中的应用需求中添加 "rocker/facebook-login" : "1.*" 并在控制台运行 composer update
3) 编辑 config.php
在 config.php 文件中,您需要添加您的 Facebook 应用程序数据,并将认证类更改为 Rocker\FacebookLogin\Authenticator。您还必须添加 Facebook 连接操作。
return array( ... 'application.operations' => array( ... 'facebook/connect' => '\\Rocker\\FacebookLogin\\Connect' ), 'application.auth' => array( 'class' => '\\Rocker\\FacebookLogin\\Authenticator', 'mechanism' => 'facebook realm="your.website.com"' ), ... 'facebook' => array( 'id' => 'Facebook app id', 'secret' => 'Facebook app secret', # (Optional) Comma separated string with data fields in the facebook response that # should saved as user meta when the user gets connected 'connect_data' => 'birthday,locale', # (Optional) Comma separated string with authentication mechanisms that should be disabled 'disabled_auth_mechanisms' => 'rc4,basic', ) );
4) 实现
以下示例使用了 rocker.js 与 Facebook JavaScript SDK 一起。
<html> <head></head> <body> <button id="login-button">Login with FB</button> <script src="/scripts/rocker.js"></script> <script src="//#/en_US/all.js"></script> <script> // Initiate FB FB.init({ appId : FB_APP_ID, status : true, cookie : false, oauth : false }); // Instantiate the Rocker server var rocker = new Rocker('https://api.mywebsite.com/'); var onFacebookLogin = function() { // Connect user rocker.request({ path : 'facebook/connect?access_token='+FB.getAccessToken(), method : 'POST', onComplete : function(status, json, http) { // set facebook auth data rocker.auth = 'facebook '+FB.getAuthResponse().userID+':'+FB.getAccessToken(); // From here on you can access any operation that requires authentication rocker.me(function(rockerUser) { console.log(rockerUser); }); } }); }; // When user clicks on login button document.getElementById('login-button').onclick = function() { // Check login status FB.getLoginStatus(function(response) { if (response.status === 'connected') { onFacebookLogin(); } else { // Login FB.login(function(response) { if(response.status == 'connected') { onFacebookLogin(); } }, {scope: 'email,user_birthday,user_location'}); } }); }; </script> </body> </html>