我试图在我的rails应用程序中使用hello.js。我从官方网站下载hello.js,包括资产文件中的脚本。然后需要它我的app.js文件。
//= require users/hello.all
//= require users/hello_ini
hello_ini
是我自己的文件(咖啡脚本)
html中的设置按钮如下
<button class= 'btn btn-primary' id= 'backpass' onclick="hello.login('justickets')">SIGN UP / LOGIN</button>
我在hello.init.coffee中包含了两个我需要的方法。
hello.init({
'jts': {
id: 'jts',
base: "https://xyz" + "/",
oauth: {
version: 2,
auth: "https://xyz" + '/dialog/authorize',
response_type: 'token'
},
scope: {
'*': '*'
},
get: {
'me': 'api/me',
'token': 'api/'
}
}
}, {oauth_proxy: false})
hello.on 'auth.login', (response) ->
console.log "response"
return unless response.authResponse and response.authResponse.access_token
console.log "im here"
hello('jtk').api('me').then ( userData) =>
parsedUserData = {
id: userData.user_id
firstName: userData.name,
token: response.authResponse.access_token
}
console.log parsedUserData
#Sending request to login user in rails app
$.ajax
url: "/process_data"
type: "POST"
data: parsedUserData
success: (resp) ->
console.log("success")
window.opener.location.reload(true);#not working
window.close()
# alert("done")
点击按钮后,应用程序正在打开。 但似乎即使我不点击,每次访问该页面时,该方法似乎都会自动运行。 另外,如何让原始窗口引用页面?
任何建议都会有所帮助,谢谢
答案 0 :(得分:1)
将事件监听器绑定到登录事件,例如......
<button class= 'btn btn-primary' id= 'backpass' onclick="hello.login('justickets').then(justLoggedInHandler)">SIGN UP / LOGIN</button>
hello.on('auth.login', eventHandler)
是非特定的,会在页面刷新时启动。