我正在关注此tutorial为我的Ionic应用创建Google登录信息。我已经设置了电子邮件/通行证登录设置,我希望将谷歌登录添加到此系统。我遵循了除了注销和服务部分之外的说明,因为我已经为我的电子邮件/通行证登录提供了一些代码。
截至目前,点击登录屏幕上的登录按钮无效。
我对本文的facebook版本存在同样的问题。
请帮忙!
答案 0 :(得分:0)
好的,我有同样的问题,我遵循不同的路径。首先,您必须阅读https://www.thepolyglotdeveloper.com/2014/07/using-oauth-2-0-service-ionicframework/。此链接包含有关Google Developer Console的重要信息。在那里你必须“注册”你的离子应用程序并获得你的clientId和clientSecret。对于我的实现,cordovaOauth是必需的,但它随附ngCordova。
所以适合我的代码是:
//视图
<button ng-click="googleLogin()" class="button button-block button-stable">
Sign In
</button>
//控制器
//请注意您从Google Developer Console中获取clientId
.controller('LoginController', ['$scope', '$cordovaOauth',
'$http','$location','$rootScope','$state','$window','$ionicLoading',
function($scope, $cordovaOauth, $http, $location,
$rootScope,$state,$window,$ionicLoading){
$scope.googleLogin = function(){
$cordovaOauth.google(clientId,
["https://www.googleapis.com/auth/urlshortener","https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/userinfo.profile", "https://www.googleapis.com/auth/plus.me"]).
then(function(result){
var accessToken;
accessToken = JSON.stringify(result);
$ionicLoading.show({
content: 'Loading',
animation: 'fade-in',
showBackdrop: true,
maxWidth: 200,
showDelay: 0
});
$http({method:"GET", url:"https://www.googleapis.com/plus/v1/people/me?access_token="+result.access_token}).
success(function(response){
var param = {
provider: 'google',
google: {
uid: response["id"],
provider: 'google',
first_name: response["name"]["givenName"],
last_name: response["name"]["familyName"],
email: response.emails[0]["value"],
image: response.image.url
}
};
//alert("get method");
first_name = response["name"]["givenName"];
email =response.emails[0]["value"];
$scope.first_name = first_name;
$scope.email = email;
$ionicLoading.hide();
$location.url('/app/viewyouwanttoredirect');
}, function(error) {
alert("App can't get your info: " +error);
});
}, function(error){
alert("Authentication error!Please try again!" +error);
});
}
}])
更新: 如果您遇到类似“无法找到InAppBrowser插件”的oauth问题, 在ng-cordova.js中用cordova-plugin-inappbrowser替换所有出现的org.apache.cordova.inappbrowser。这将解决问题。当然你需要在index.html:
<script src="yourpath/ng-cordova.js"></script>
你说你不想要ngCordovaOAuth解决方案,但glogin带来了痛苦。所以我发布我的答案,我希望能帮助你,也希望社区。 p>
答案 1 :(得分:0)
我建议你使用这个进行facebook登录验证: https://github.com/jeduan/cordova-plugin-facebook4
简单快捷。相信我。