我有一个使用卫星进行FB登录的MEAN堆栈应用程序。
$authProvider.facebook({
clientId: '1625070294abcdef',
scope: 'user_friends'
});
此处没有其他自定义设置。 一旦FB认证对话框关闭,FB的响应(即用户数据)就会被发送到我的快递服务器,以便我可以检索长期令牌。
我的FB开发人员门户网站上的网站网址设置为:
http://localhost:3000
这也是我的快递服务器正在收听的地址。
到目前为止一切都那么好......一切正常......
现在我也在创建一个离子应用程序..它将使用相同的快速后端。
为了执行FB登录,我再次使用带有离子的sateziller。
卫星在离子应用程序中配置如下:
var commonConfig = {
popupOptions: {
location: 'no',
toolbar: 'no',
width: window.screen.width,
height: window.screen.height
},
commongConfig: {
clientId: '1625070294abcdef',
responseType: 'token',
redirectUri: 'http://localhost:3000'
}
};
问题如下。 在离子应用程序中,将打开FB autentication窗口。用户验证..现在不是关闭窗口..同样的小窗口加载我的Angular网站(来自我前面提到的MEAN网站)
这告诉我从FB authen收到令牌后......它被发送到我的快递服务器。现在,而不是将长期令牌发送回我的离子应用程序..快递服务器正在发送整个Angular应用程序。
在快速服务器上检索长期令牌的代码如下所示:
var accessTokenUrl = 'https://graph.facebook.com/oauth/access_token';
var params = {
'client_id': req.body.clientId,
'redirect_uri': req.body.redirectUri,
'client_secret': conf.FACEBOOK_SECRET,
code: req.body.code
};
console.log(params);
request.get({url: accessTokenUrl, qs: params}, function (err, response, token) {
if (err) {
callback(err);
}
var accessToken = qs.parse(token);
...
...
retreive user details from FB using this accessToken (code hidden for sake of clarity
..
..
res.status(200).send({
user: user.toJSON(),
token: token
});
});
我相信我在这里犯了一些根本性的错误。
一天结束时的离子应用程序是一个网站(就facebook而言)?
我应该可以使用相同的快速后端来验证我的网站和IONIC应用程序并为其提供REST服务吗?
由于网站(Angular APP)是从与快速服务器相同的服务器提供的..它不需要在satellizer配置中使用redirectUri参数..(默认情况下,这是expresss正在监听的URI)
由于离线应用程序不会由快速服务器提供服务。我们必须明确指定satellizer配置中的重定向URI。 重定向URI应该是express正在监听的地址和端口吗?
答案 0 :(得分:0)
有类似的问题,但您可能想查看ionic.project文件:
:Register
set /p User=Enter A Username: %=%
IF EXIST %User%.txt (
call :colorEcho c %User%
call :colorEcho c " Already Exists."
echo.
call :colorEcho c "Please Choose A Different Username."
echo.
goto Register
) ELSE (
set /p Pass=Enter A Password: %=%
set /p RePass=Re-Enter Password: %=%
)
if %RePass%==%Pass% goto RegFinal
if not %RePass%==%Pass%(
call :colorEcho C "Passwords Do Not Match"
echo.
goto Register
)
:RegFinal
echo %Pass%>%User%.txt
echo Welcome %User%
pause
exit
有了这个,您可以将:Login
set /p User=Enter Your Username: %=%
IF EXIST %User%.txt (
set /p Pass=Enter Your Password: %=%
>nul findstr /c:%Pass% %User%.txt && (
echo Welcome %User%
) || (
echo Incorrect Username or Password
goto Login
)
) ELSE (
call :colorEcho c %User%
call :colorEcho c " Does Not Exists."
echo.
goto Choice
)
设置为:
trait Foo[T: ClassTag]
Error:(11, 35) traits cannot have type parameters with context bounds `: ...' nor view bounds `<% ...'
trait Foo[T: ClassTag]
^
然后在&#39; / user / twitter&#39;创建快速路线 - 当FB或Twitter等尝试重定向回查询者页面时,它会命中您的ionic.project代理并将其发送到Express / Sails / Server,您可以将该请求捕获为GET,处理它,创建一个用户等。显然,我的经验是使用Twitter,但它全部正常化,所以我认为这对你有用。
我希望这有帮助!