【发布时间】:2016-02-16 01:10:56
【问题描述】:
我在 Swift 上使用 Lumen Api & OAuth2-Server-Laravel repo 和 iOS 应用程序。
我访问了token 以返回有效的客户端和用户凭据,并将其存储在应用程序中。现在我正在尝试将token 与user_id 交换。
我尝试了我在OAuth github repo's support 上为getting user_id from access_token 找到的内容
这是我得到的错误:
Fatal error: Call to undefined method LucaDegasperi\OAuth2Server\Facades\Authorizer::getResourceOwnerId() in /home/vagrant/LumenAPI/app/Http/Controllers/OAuthController.php on line 27
我尝试使用token 并收到user_id 作为回报。
我在 Lumen 中的路线如下所示:
$app->get('/me', 'OAuthController@token');
OAuthController:
namespace App\Http\Controllers;
use LucaDegasperi\OAuth2Server\Facades\Authorizer;
class OAuthController extends Controller
{
private $authorizer;
public function __construct(Authorizer $authorizer)
{
$this->authorizer = $authorizer;
}
public function token()
{
$user_id = $this->authorizer->getResourceOwnerId();
return Response::json(['data'=> $user_id]); //Line 27
}
}
我在 Swift 上使用了这个 GET 请求:
func me(handler: (data: NSDictionary?, error: String?) -> Void)
{
let url = NSURL(string: "/me", relativeToURL: self.baseUrl)
let request = NSMutableURLRequest(URL: url!)
request.HTTPMethod = "GET"
// The request is valid only if the access_token exists
if let t = self.getAccessToken() // valid
{
request.setValue("Bearer \(t)", forHTTPHeaderField: "Authorization")
let taskInstance = DataTaskHandler()
taskInstance.make(request, handler: { (result, error) -> Void in
if let res = result
{
if let jsonDictionary = JSONParser(data: res).dictionary()
{
print(jsonDictionary)
handler(data: jsonDictionary, error: nil)
}
}
})
}
else
{
handler(data:nil, error: "The access token is not available")
}
}
【问题讨论】:
标签: php swift laravel oauth-2.0 lumen